标签:dem 根据 web hello setattr logs lan ini 一个
目录!
一、什么是servlet
二、Tomcat容器等级
三、手工编写第一个servlet
四、servlet执行流程
五、servlet生命周期
六、Tomcat装载servlet的三种情况
七、servlet与JSP内置对象的关系
八、servlet获取表单数据
九、servlet路径跳转
一、什么是servlet
servlet是在服务器上运行的小程序。一个servlet就是一个java类,并且可以通过“请求-响应”的模型访问这个服务器内存中的servlet程序。JSP的前身就是servlet。
二、Tomcat容器等级
tomcat的容器分为四个等级,servlet的容器管理context容器,一个context对应一个web工程。
三、手工编写第一个servlet
4. 在src下新建一个包servlet 在包中建一个类HelloServlet,继承HttpServlet
5.1 重写doGet()
6.1在web.xml中注册servlet
3.2 在index.jsp中加post表单
5.2重写dopost()方法
四、servlet执行流程
五、servlet生命周期
1.客户端发送请求给服务器。
2.服务器开始接受,先判断该请求的servlet实例是否存在,如果不存在先装载一个servlet类并创建实例。如果存在则直接调用该servlet的service方法,之后进行判断是调用doGet方法还是doPost方法。
3.servlet创建实例后,调用init方法进行初始化。之后调用servce方法,判断是调用doGet方法还是doPost方法。
4.最后判断服务是否关闭,如果关闭则调用destroy方法。
1. 初始化阶段,调用init()方法。但在初始化之前要先调用Servlet类的构造方法,生成Servlet的实例(创建Servlet对象)。
2. 响应客户请求阶段,调用service()方法。由service()方法根据提交方式选择执行doGet()或者doPost()方法。
3. 终止阶段,调用destroy()方法。也就是销毁阶段。
顺序:构造方法-->init()方法-->service方法-->doGet()/doPost()方法-->Destroy方法。
六、Tomcat装载servlet的三种情况
1. servlet容器启动时自动装载某些servlet,实现他只需要在web.xml文件中的<Servlet></Servlet>之间添加: <loadon-startup>1<loadon-startup> 数字越小优先级越高
2. 在Servlet容器启动后,客户首次向servlet发送请求。
3.servlet类文件被更新后,重新装载servlet。
注意:servlet被转载后,servlet容器创建一个servlet思路并且调用servlet的init()方法进行初始化。在servlet的整个生命周期内,init()方法只调用一次。
七、servlet与JSP内置对象的关系
八、servlet获取表单数据
1.单个数据:
username =request.getParameter(“”);
获取多个数据(复选框型,返回字符串数组):
favorites=request.getParameterValues Parameter(“”);
u.setUsername(username);
u.setMypassword (mypassword);
u.setEmail (email);
2.把注册成功的对象保存在session中
request.getSession().setAttribute(“regUser”,u);
3.跳转到注册成功界面
request.getRequsetDispatcher(“../userinfo.jsp”).forward(request,response);
九、servlet路径跳转
1、在页面中访问servlet
①相对路径:servlet/HelloServlet
②绝对路径:path变量表示项目的根目录,path/servlet/HelloServlet,其中path=request.getContextPath
**超链接中href应该写成"servlet/HelloServlet",servlet前不能有/;web.xml中url-pattern标签中的url地址应写成“/servlet/HelloServlet”,servlet前必须有/,表示项目的根目录
2、在servlet中跳转到jsp页面
①请求重定向:response.sendRedirect(request.getContextPath()+"/test.jsp")
如果只写"test.jsp"表示的是相对路径,当前路径是“项目名称/servlet”,就错了
②Servlet服务器内部跳转路径写法:
request.getRequestDispatcher("/test.jsp").forward(request,response),这里的“/”表示项目的根目录,
也可以写成"../test.jsp",“..”表示上一层目录
标签:dem 根据 web hello setattr logs lan ini 一个
原文地址:http://www.cnblogs.com/olivegyr/p/7400419.html