文章标题

来源:互联网 发布:战舰建模软件 编辑:程序博客网 时间:2024/06/01 09:04

Servlet 简单介绍

Servlet 是web项目中服务器端的小脚本(一般用来处理web网页的request请求)
一, Servlet的实现
首先,对于我们创建的任意一个Servlet都必须要实现Servlet接口,GenericServlet是一个通用的、不特定与任何协议的Servlet,它实现了Servlet接口,而HttpServlet继承于GenericServlet,因此HttpServlet也实现了Servlet接口,所以我们定义Servlet时只需继承HttpServlet即可。这里写图片描述
继承之后一般重写dopost()和doget()方法。
二 ,Servlet的生命周期
首先Servlet的加载模式为单例模式,当第一次被执行之后,再次调用时不会执行构造方法。
1.最先执行的是Servlet的构造方法;
2.初始化方法 init();
3.执行doget()或dopos()根据请求的方式不同;
4.执行service()方法
5.destroy()服务器停止
三 .Servlet的配置
Servlet的配置有两种,一种是通过web.xml文件来配置,另一种是通过注解来配置。
1.在web.xml中通过节点的方式

 <servlet>         <!-名字可以随便取,最好见名知意-!>    <servlet-name>name1</servlet-name>          <!- 类的全路径 包名加类名-!>    <servlet-class>com.day36.Severlet1</servlet-class>  </servlet>  <servlet-mapping>     <!-servlet节点自己写的名子-!>   <servlet-name>name1</servlet-name>     <!-web网页端请求时需要的url-!>   <url-pattern>/demo</url-pattern>  </servlet-mapping>

执行顺序 :web网页发送请求后 通过url-pattern>/demo 找到 servlet-mapping>节点 在通过servlet-name>name1 找到对应servlet>节点 加载通过反射加载Servlet
有两种特殊情况
(1)当有多个不同url-pattern 的名字不同,但是servlet-name相同时,一个servlet可以处理多个请求。
这里写图片描述

(2)一个请求不能由多个Servlet来处理
这里写图片描述
2 在Servlet类中加注解
(1)@WebServlet(“/Action_name”);//直接在class上加
(2)@WebServlet(description=“描述的内容”,
urlPatterns{“可以取多个name”,“”,“” },
initParams{
@WebInitParam(name=”username”,value=”admin”) ,
@WebInitParam(name=”password”,value=”123456”)
}

注解完后在执行init()方法时就可以取出我们注解时值
三 . Servlet的request

        request.getMethod()//获取请求的方式        request.getParameter("节点name")//获取节点的value        request.getParameterValues("")//获取多选的值返回一个字符串数组        request.setAttribute(key,value);//设置值 键值对形;

request.getRequestDispatcher(“/success.jsp”).forward(request, response);//跳转页面

在.jsp中取出request set的值

    <body>            <%           String str=(String)request.getAttribute("hello");         %>              <h1>this is success</h1><br/>       <h1><%=str%> </h1></body>
原创粉丝点击