• Servlet


    serverlet 学习

    1. serverlet实现的是javax.servlet.servlet接口
    2. 配置web.xml
    <servlet>
    		<servlet-name><servlet-name>//servlet名称
    		<servlet-class></servlet-class>	//servlet处理类
    	</servlet>
    	<servlet-mapping>
    		<servlet-name></servlet-name>//servle名称
    		<url-pattern></url-pattern>//servlet访问路径
    	</servlet-mapping>

    Servlet信息要添加到web.xml中才能被访问

    Servlet的生命周期:

    1. 加载Servlet:由Servlet容器完成。
      a. 首次发送请求时加载:(当访问对应的URL时,才加载相应的Servlet)
      b. 自动加载Servlet:(服务器启动时,自动载入内存。)*
      <load-on-startup>1</load-on-startup> <!-- 声明servlet自动加载 -->*
    2. 初始化Servlet方法:init()方法。
    3. 处理请求的方法:service()方法:doGet,doPost
    4. 销毁Servlet:destory()方法;

    Servlet之间的跳转:

    1. RequestDispatcher的forward跳转(可以跳到Servlet和JSP、文件直接在后台跳转,浏览器不知道发送了跳转,所以前台的URL是不变的
    request.getRequestDispatcher("/index.jsp".forward(request, response) //index.jsp为跳转的页面
    1. URL重定向:
      I.服务器返回的状态码:
    response.sendRedirect("/javawebCommon/index.jsp");///javawebCommon/index.jsp为跳转的页面,request不能传递信息到新的页面

    中文乱码解决方案:

    1. Servlet输出响应:
    response.setCharacterEncoding("utf-8");//要在获取response.getWriter();之前设置编码格式;
    1. 在前台获取到值时,转换为对应的编码格式
    <%
    		String name = erquest.getParameter("username");
    		String name_zh = new String(name.getBytes("编码格式"))
    	%>

    servlet线程不安全的问题:

    我的理解:
    1. 服务器开启,创建Servlet进程;
    2. 如果有服务,分配一个线程,
    3. 服务器关闭,关闭Servlet进程;
    

    由于只有一个进程,所有的线程共享资源,所有如果,定义了全局的变量,就可以被每个线程修改

    解决办法

    1. 尽量将每个线程的私有属性定义为局部变量。
    2. 只读属性的最好定义为final类型;

    本章小结:

    1.JSP应用的前身组件Servlet;
    2.在javaweb中,servlet负责接收用户请求HttpServletRequest,在doGet,doPost中处理,并将HttpServletResponse反馈给用户。
    3.Servlet可以设置初始化参数。供Servlet内部使用。
    4.一个Servlet类只会有一个实例,在它初始化时调用init()方法,销毁时调用destory()方法。
    5.Servlet信息需要在web.xml中配置,一个Servlet可以设置多个URL访问,
    6.Servlet不是线程安全的,谨慎使用类的变量

  • 相关阅读:
    ehcache memcache redis 三大缓存男高音
    tomcat启用压缩的方式
    Linux rpm 命令参数使用详解[介绍和应用]
    rpm常用命令及rpm参数介绍
    RPM 命令大全
    BZOJ2298: [HAOI2011]problem a(带权区间覆盖DP)
    BZOJ2037: [Sdoi2008]Sue的小球(区间DP)
    HDU3507 Print Article(斜率优化DP)
    线性代数学习笔记(几何版)
    HDU 2065 "红色病毒"问题(生成函数)
  • 原文地址:https://www.cnblogs.com/wangbiwei/p/5991577.html
Copyright © 2020-2023  润新知