java servlet

回顾

1三要素是什么?

入口(login.html)     处理(LoginServlet.java)  出口 (success.jsp)

2如何访问servlet

  http://IP:port/project/urlpattern

  urlpattern ---->web.xml中找

3 request response的区别?

Request请求  Broswer---->Tomcat    login.html--->LoginSevlet.java

Response返回 Tomcat---->Broswer   

4 doGet  和  doPost的区别?

   

   doGet   <a href=url>  超链接用的默认方式 get   不解中文决乱么

            <form action=url  method=get >

           明文传递方式 浏览器中可以看到传递的信息

           不安全,并且数据量大的时候会缺损数据

   doPost   <form action=url  method=post >        解决中文乱码

            密文传递方式 浏览器看不到传递的信息

           安全,并且数据量大的时候不会缺损数据

5如何解决乱码问题?

Request请求有乱码    

request.setCharacterEncoding("UTF-8");

Reponse返回有乱

response.setCharacterEncoding("UTF-8");

6 如何取得请求中的值 ?

String value=request.getParameter(“控件名”);   单个值

String []  values=request.getParmeterValues(“控件名”);  同名多个值

7 常见的错误:404 500

404 路径错误---解决思路  跟踪路径

500 代码错误---解决思路  jsp/servlet中代码错误

获取不到值null  console里面去找到错误的位置。

8 servlet中得到流的方法?

   字符流   response.getWriter( )----->PrintWriter

   字节流   response.getOutputStream()-->OutputStream

9 如何跳转到出口?

       //跳转并且可以传递数据

request.getRequestDispatcher("success.jsp").forward(request, response);

        //重新定向 跳转不传递数据

//response.sendRedirect("success.html");

10如何将数据传递到出口?

        //保存数据

request.setAttribute("name", username);

request.setAttribute("password", pwd);

        //获取数据

        用户名是:${ name}   ,密码: ${password}

11 Servlet的生命周期

   Servlet的生命周期是由tomcat服务器来控制的。

  1 构造方法:

创建servlet对象的时候调用。默认情况下,第一访问servlet就会创建servlet对象只创建一次。说明servlet对象在tomcat中是单实例的。

 2初始化   init方法

  当创建完servlet对象的时候会调用init()方法,只调用一次。

3 调用服务 service 方法   其中就包含doGet  doPost等方法

  每次发送请求的时候调用。可以调用n次。

4 销毁    destory 方法

   销毁servlet对象的时候调用,停止服务器或者重新部署的web项目的时候销毁servlet就会调用destory方法

12 Servlet时序图

13 servlet自动加载

web.xml中加入

  <load-on-startup> 1</load-on-startup>

里面的数字越小加载级别越高

tomcat启动的时候,就去运行web.xml解析里面的内容,当发现有自动加载的数据时候,就会运行加载。

  <servlet>

    <servlet-name>sl</servlet-name>

    <servlet-class>com.bw.servlet.LoginServlet</servlet-class>

      <load-on-startup>3</load-on-startup>

  </servlet>

14 ServletConfig 对象

   主要是加载servlet的初始化参数,web应用中可以存在多个ServletConfig对象

  

  <servlet>

    <servlet-name>sl</servlet-name>

    <servlet-class>com.bw.servlet.LoginServlet</servlet-class>

     <init-param>

      <param-name>username</param-name>

      <param-value>godyang</param-value>

    </init-param>

    <init-param>

      <param-name>password</param-name>

      <param-value>123456</param-value>

    </init-param>

  </servlet>

15 ServletContext对象

 上下文对象,表示当前的web应用(项目)环境。一个web应用只有一个ServletContext对象

  上下文参数配置  它是全局的  所有的servlet都可以访问

<context-param>

<param-name>ecode</param-name>

<param-value>UTF-8</param-value>

</context-param>

// 获取上下文对象

ServletContext sc = this.getServletContext();

String contextParamValue = sc.getInitParameter("ecode");

System.out.println("contextParamValue=" + contextParamValue);

//项目路径

String path=sc.getContextPath();

System.out.println("path="+path);

//文件发布后(tomcat/webapps)的真实路径

String realPath=sc.getRealPath("counter.txt");

System.out.println("realPath="+realPath  );

//获取文件流

     InputStream  is=sc.getResourceAsStream("C:\Tomcat\webapps\webThree\WEB-INF\classes\counter.txt");

原文地址:https://www.cnblogs.com/li-su-35/p/6215872.html