赞
踩
Servlet初始化交由应用服务器管理,在管理中(<load-on-startup>0</load-on-startup>)负责Servlet来控制单例模式。
默认值为-1,代表懒汉模式。大于-1代表饿汉模式。
当值大于-1时,直接影响到初始化顺序,数字越小优先级越高
- @Override
- public void init(ServletConfig config) throws ServletException{
- System.out.print("我是初始化方法");
- }
接收请求,返回响应
- //HttpServletRequest 请求
- //HttpServletResponse 响应
- @Override
- public void service(HttpServletRequest resquest,HttpServletResponse response) throws SercletException,IOException{
- System.out.print("我是运行方法");
- }
destroy():关闭服务器时调用,且只调用一次
- @Override
- public void destroy(){
- System.out.print("我是销毁方法");
- }
2.1、基于配置
web.xml中
- <servlet>
- <!--名称-->
- <servlet-name>Life</servlet-name>
- <!--指向的类路径-->
- <servlet-class>Servlet.LifeServlet</servlet-class>
- <!--初始化参数-->
- <init-param>
- <!--参数名-->
- <param-name>username</param-name>
- <!--参数值-->
- <param-value>Zhanghr</param-value>
- </init-param>
- <init-param>
- <param-name>password</param-name>
- <param-value>123456</param-value>
- </init-param>
- <!--单例实现模式-->
- <load-on-startup>0</load-on-startup>
- </servlet>
- <servlet-mapping>
- <!--名称对应的映射-->
- <servlet-name>Life</servlet-name>
- <!--访问路径-->
- <url-pattern>/life.do</url-pattern>
- </servlet-mapping>

注:在url-pattern中一定要写“/”,否则路径失效。
2.2、基于注解
- @WebServlet(
- name="LifeServlet",
- urlPatterns="/life.do",
- loadOnStartup=0,
- initParams={
- @WebInitParam(name="username",value="zhanghr"),
- @WebInitParam(name="password",value="123456")
- }
- )
- public class LifeServlet extends HttpServlet{
- }
HTTP(超文本传输协议)是无连接无状态的,客户端发送一次请求,服务器返回一次响应,返回响应后服务器立即关闭连接通道。
服务器端不会存储任何客户端相关的信息。每次客户端请求都被服务器认为是全新的。
4.1、请求行[固定项]
HTTP协议:http 1.1—http:// http2.0—https://
请求方法:get || post
请求地址:URL+URI
由固定项组成,可以通过request的get方法获取地址栏中的信息。
4.2、请求头
由浏览器采集非用户隐私信息传送到服务端
通过request的getHeader(键)获取对应值。
4.3、数据体
客户端表单中的数据。
4.4常用方法
- //获取客户端
- String userAgent = request.getHeader("User-Agent");
- System.out.println("userAgent:"+userAgent);
- //获取项目路径
- String contextPath = request.getContextPath();
- System.out.println("项目路径"+contextPath);//
- //获取uri
- String uri = request.getRequestURI();
- System.out.println("uri:"+uri);
- //获取url(ip://port/project/index)
- StringBuffer url = request.getRequestURL();
- System.out.println("url:"+url);
- //请求方式(get/post)
- String method = request.getMethod();
- System.out.println("method:"+method);
- //获取协议信息(1.1/2.0)
- String protocol = request.getProtocol();
- System.out.println( "protocol:"+protocol );
- //获取方式(http/https)
- String scheme =request.getScheme();
- System.out.println("Scheme:"+scheme);

http协议:http1.1—http:// http2.0—https://
状态码:http://cat
1xx:信息响应类,表示接收到请求并继续处理(服务器端continue)
2xx:处理成功响应类,表示动作被成功接收理解和接收
3xx:重定向响应类,为了完成指定动作,必须接受进一步处理(服务器+客户端)
4xx:客户端错误,客户请求包含语法错误或是不能正确执行
5xx:服务端错误,服务器不能正常执行一个正确的请求
消息值:每个状态码都有对应的消息值
404 Not Found 405 Method Not Allowed
服务器传递信息到客户端,常用方法有两种
Response.addHeader("key1","value1"),确定不存在用添加
Response.addHeader("key2","value2"),存在覆盖,不存在添加
设置响应类型:response.setContentType("text/html;charset=UTF-8");
reaponse响应类型分两种:
1、响应文本
response.getWriter();
2、响应流
response.getOutputStream();
- //如果未设置了浏览器处理文件方式,能识别就打开,不能识别就下载。
- response.addHeader("Content-Disposition","attachment;filename=\文件名\");
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。