Servlet学习笔记(一)
使用Servlet所需要导入的包: java.io.*;
javax.servlet.*;
javax.servlet.http.*;
配置Tomcat 的web.xml文件
<web-app>
<servlet>
<servlet-name>HelloWorld</servlet-name>
<servlet-class>HelloWorld</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>HelloWorld</servlet-name>
<url-pattern>/HelloWorld</url-pattern>
</servlet-mapping>
<servlet>
<servlet-name>HelloWorldTwo</servlet-name>
<servlet-class>HelloWorldTwo</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>HelloWorldTwo</servlet-name>
<url-pattern>/HelloWorldTwo</url-pattern>
</servlet-mapping>
</web-app>
Servlet创建的三种方式:
1.实现Servlet接口
import java.io.*;
import javax.servlet.*;
import javax.servlet.http.*; public class HelloWorldTwo implements Servlet{
private String message;
public void init( ServletConfig arg0) throws ServletException{ System.out.println("初始化init");
message="我是实现接口Servlet的HelloWorld";
} public void service(ServletRequest request, ServletResponse response) throws ServletException ,IOException{ System.out.println("service");
request.setCharacterEncoding("UTF-8");
String name= request.getParameter("name");
// 设置响应内容类型
response.setContentType("text/html");
response.setCharacterEncoding("UTF-8");
// 实际的逻辑是在这里
PrintWriter out = response.getWriter();
out.println("<h1>" + name + "</h1>"); } public void destroy(){ System.out.println("*******destory******");
}
public ServletConfig getServletConfig() { return null;
} public String getServletInfo() { return null;
}
}
2.继承GenericService类
3.继承HttpServlet类
// 导入必需的 java 库
import java.io.*;
import javax.servlet.*;
import javax.servlet.http.*; // 扩展 HttpServlet 类
public class HelloWorld extends HttpServlet { private String message; public void init() throws ServletException
{ System.out.println("初始化init");
// 执行必需的初始化
message = "我是继承HttpServlet的HelloWorld";
}
@Override
public void doGet(HttpServletRequest request,
HttpServletResponse response)
throws ServletException, IOException
{
System.out.println("doGet");
// 设置响应内容类型
response.setContentType("text/html");
response.setCharacterEncoding("UTF-8");
// 实际的逻辑是在这里
PrintWriter out = response.getWriter();
out.println("<h1>" + message + "</h1>");
} public void destroy()
{
// 什么也不做
System.out.println("destroy");
}
}
其中1和2两种方式实现的是service方法,第三种实现的是doGet 和 doPost
Servlet学习笔记(一)的更多相关文章
- # jsp及servlet学习笔记
目录 jsp及servlet学习笔记 JSP(Java Server Page Java服务端网页) 指令和动作: servlet(小服务程序) jsp及servlet学习笔记 JSP(Java Se ...
- Servlet学习笔记(四)
目录 Servlet学习笔记(四) 一.会话技术Cookie.session 1. 什么是会话技术? 2. 会话技术有什么用? 3. Cookie 3.1 什么是Cookie? 3.2 使用Cooki ...
- Servlet学习笔记(三)
目录 Servlet学习笔记(三) 一.HTTP协议 1.请求:客户端发送欸服务器端的数据 2.响应:服务器端发送给客户端的数据 3.响应状态码 二.Response对象 1.Response设置响应 ...
- Servlet学习笔记(二)
目录 Servlet学习笔记(二) Request对象 1.request和response对象: 2.request对象继承体系结构: 3.什么是HttpServletRequest ? 4.Htt ...
- jsp&servlet学习笔记
1.路径引用问题 一个css.jsp.html.或者javascript文件从从一个工程复制到另一工程,如果引用的时候使用的时相对路径,看似没有错误,但是却一直引用不进来,这时候要使用绝对路径,这样才 ...
- Servlet 学习笔记
Servlet 运行在服务器上的 java 类: Servlet 容器为 javaWeb 应用提供运行时环境,负责管理 servlet 和 jsp 生命周期,以及管理他们的共享数据. 现在我们知道了 ...
- Servlet学习笔记(1)--第一个servlet&&三种状态对象(cookie,session,application)&&Servlet的生命周期
servlet的404错误困扰了两天,各种方法都试过了,翻书逛论坛终于把问题解决了,写此博客来纪念自己的第一个servlet经历. 下面我会将自己的编写第一个servlet的详细过程提供给初学者,大神 ...
- Servlet学习笔记(七)—— 自己定义过滤器的编写改进:自己定义实现FilterChain
笔记六中实现了三种过滤器:字符编码过滤.登录权限过滤.敏感词过滤,可是有个缺陷就是,限定了过滤顺序,而不能实现先进行request过滤.最后response过滤,而且中间几项过滤的顺序不能动态改变.所 ...
- Servlet学习笔记(八)—— 文件下载
一.文件下载概述 比如图片或者HTML这类静态资源,仅仅要在浏览器中打开正确的网址就行下载.仅仅要资源放在应用程序文件夹或者其下的子文件夹中,但不在WEB-INF下.Servlet/JSP容器就会将资 ...
- JSP&Servlet学习笔记----第1/2章
HTML(HyperText Markup Language):超文本标记语言 HTTP(HyperText Transfer Protocol):超文本传输协议 URL(Uniform Resour ...
随机推荐
- 2016年中国的SaaS服务商企业研究
近年来,随着中国人口红利的消退及移动互联网红利的凸显,让中国的To C创业,尤其是O2O领域的创业经历了一波高潮.2015年末,一场"资本寒冬"让O2O创业趋于理性,但SaaS及T ...
- F4NNIU 的 KiCad EDA 技巧 (2019-05-09 更新)
F4NNIU 的 KiCad EDA 技巧 已经慢慢切换到 KiCadEDA 上来画板,优点很多. 开源: 自动推挤: 无限的元件库: 强大的 3D 显示: 这里整理一下个人使用的技巧: 原理图 Ee ...
- HDU_1087-Super Jumping! Jumping! Jumping!
Super Jumping! Jumping! Jumping! Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K ...
- js中字符串拼接html
1.使用转义字符 ": " " "+userName+" " " 效果:"userName" 2. 单引号中拼 ...
- @atcoder - Japanese Student Championship 2019 Qualification - F@ Candy Retribution
目录 @description@ @solution@ @accepted code@ @details@ @description@ 请找到满足以下条件的长度为 N 的非负整数序列 A1, A2, ...
- Android Studio(一):介绍、安装、配置
Android Studio相关博客: Android Studio(一):介绍.安装.配置 Android Studio(二):快捷键设置.插件安装 Android Studio(三):设置Andr ...
- poj 1039 Pipe (Geometry)
1039 -- Pipe 理解错题意一个晚上._(:з」∠)_ 题意很容易看懂,就是要求你求出从外面射进一根管子的射线,最远可以射到哪里. 正解的做法是,选择上点和下点各一个,然后对于每个折点位置竖直 ...
- linux用户权限管理, chmod, ln
1 /etc/passwd文件 用户名 密码 UID GID Full Name 主目录 ...
- siblings() 获得匹配集合中每个元素的同胞
定义和用法 siblings() 获得匹配集合中每个元素的同胞,通过选择器进行筛选是可选的. 如果给定一个表示 DOM 元素集合的 jQuery 对象,.siblings() 方法允许我们在 DOM ...
- 2019-8-24-win10-uwp-读取文本GBK错误
title author date CreateTime categories win10 uwp 读取文本GBK错误 lindexi 2019-8-24 16:2:27 +0800 2018-2-1 ...