第三天知识点

知识点回顾:html

1.tomcat安装及目录介绍web

JAVA_HOME浏览器

CATALINA_HOMEtomcat

PATH=%JAVA_HOME%/bin;安全

 

2.静态web项目、动态web项目服务器

WEB-INF多线程

libapp

classeseclipse

web.xmlpost

3.外部动态web项目

server.xml

<host>

<Context path="" docBase="" />

</host>

 

4.tomcateclipse的整合!tomcat镜像!

 

 

5.http协议介绍及getpost请求、响应状态码

 

报文首部

报文首行

报文头部

空行

报文体

 

请求报文

get请求

 

post请求

 

get请求和post请求的区别:

1get请求是经过url地址栏来传递参数的,而post请求经过报文体来传递参数的

2.get请求能够在浏览器地址栏中看到请求参数,而post请求看不到

3.get请求对传递的参数有限制,最多容许255个字符,因此数据比较大的话咱们使用post请求!

4.在表单中通常咱们都使用post请求,除了在表单中,页面中的其它地方基本上都是使用get请求!

响应报文

 

6.servlet快速入门!

1.servletweb的三大组件之一;web的三大组件是指:ServletFilterListener

2.狭义的servlet:servlet

3.广义的servlet:凡是实现了servlet接口的类都称之为servlet!

 

7.如何快速定义一个servlet?

1.自定义实现类,实现servlet接口,实现接口就意味着实现servlet中的方法!

2.web.xml中注册一下!

 

问题点:

1.建立动态web项目的时候没有选择tomcat

 

2.复制类的全路径的时候!

 

3.项目名书写:不要8.x

 

 

 

 

今日知识点:

4.servlet的配置

  <!-- 向服务器注册servlet -->

  <servlet>

   <!-- servlet-name是给咱们使用的,咱们使用这个servlet-nameservlet进行配置! -->

   <servlet-name>AServlet</servlet-name>

   <!-- servlet-class指定全类名,给服务器使用,服务器使用这个全类名建立一个servlet实例【对象】 -->

   <servlet-class>com.neuedu.servlet.AServlet</servlet-class>

  </servlet>

  

  <!-- servlet-mapping作请求映射 -->

  <servlet-mapping>

   <servlet-name>AServlet</servlet-name>

   <!-- 请求映射是经过这个url-pattern来实现的! -->

   <url-pattern>/BServlet</url-pattern>

  </servlet-mapping>

  

  注意点:

1.<url-pattern>标签中指定的映射路径没必要和<servlet-name>标签指定的内容保持一致!

2.只有你浏览器地址栏中请求的url和咱们这里<url-pattern>标签中的映射一致的时候,咱们自定义的servlet类才会处理这个请求!

 

 

5.生命周期

 

servlet是由tomcat服务器来管理的!

 

servlet生命周期:是指servlet对象由产生到销毁的过程!

 

servlet生命周期涉及的几个方法:

1.构造器方法:只会在第一次访问这个servlet的时候调用一次,调用一次就说明servlet是单例的,可是servlet是多线程的,

  非线程安全的,也就是说在servlet中咱们尽可能不要在service方法中操做全局变量!

 

2.init方法:init方法只会在第一次访问servlet的时候调用一次,对servlet对象进行初始化操做!

 

3.service:service方法会在每次访问这个servlet的时候都调用一次,并且咱们的业务逻辑也是写在这个service方法!

 

4.destroy方法:destroy方法只会在咱们的项目卸载的时候调用一次,也就是说在服务器关闭的时候会在服务器关闭的时候调用一次!

 

6.servletConfig

     

 ServletConfig:是一个接口,一个ServletConfig对象只表明当前的servlet类的配置信息。

 1) represent:

 *    <servlet>

<!-- servlet-name是给咱们使用的,咱们使用这个servlet-nameservlet进行配置! -->

<servlet-name>AServlet</servlet-name>

<!-- servlet-class指定全类名,给服务器使用,服务器使用这个全类名建立一个servlet实例【对象】 -->

<servlet-class>com.neuedu.servlet.AServlet</servlet-class>

  </servlet>

 

    2).如何获取:

由服务器建立,经过init方法的参数直接传递给咱们,咱们直接在init方法使用就能够了!

 

3)功能:

getServletName():获取当前servlet-name值,也就是获取servletname

getInitParameter("password"):获取servlet的初始化参数!

getServletContext():获取当前web应用!

  

7.ServletContext

1) 表明:表明的是当前web应用,也就是指的web.xml文件中的信息!

 

2)获取:经过ServletConfig对象的getServletContext()获取!

 

3) 功能:

1getInitParameter:获取整个web应用的初始化参数,也就是以下:

  <context-param>

<param-name>user</param-name>

<param-value>lisi</param-value>

  </context-param>

        2)获取资源的真实路径:getRealPath()

   虚拟路径:http://localhost:8080/servlet-demo1/index.html    

   真实路径:E:\LHF teacher\marsworkspace\servlet-demo1\WebContent\index.html

   

8.MyGenericServlet

1.定义一个抽象类实现servlet接口,保留service方法不去实现,其他方法都实现了!

2.自定义抽象类子类,在web.xml文件中注册一下这个子类!

 

9.HttpServlet

public class AServlet extends HttpServlet {

protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {

doPost(request,response);

}

protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {

}

 

}

 

10.HttpServletRequest

1)表明:表明浏览器向服务器发送的请求报文

2) 获取:tomcat服务器建立,而后作为参数传递给咱们相对应的doGet或者doPost方法!

3) 功能:

     getParameter()获取请求参数

 getContextPath():获取当前项目名

 setAttribute/getAttribute:自己就是一个域对象!

 request.getRequestDispatcher("1.html").forward(request, response);能够实现转发功能!

 

11.HttpServletResponse

    1)表明:服务器响应给浏览器的响应报文

2)获取:由服务器建立,而后作为参数传递给咱们相对应的doGet或者doPost方法!

3)功能:

response.getWriter().println("<h3>hello world!</h3>");能够返回给浏览器一个页面或者一个页面片断!

response.sendRedirect("/servlet1/1.html"); :能够作请求的重定向

 

 

12.转发和重定向

 

转发:当浏览器向服务器发送请求的时候,服务器本身不处理,而是调用其它的web资源进行处理!

 

 

重定向:当浏览器向服务器发送请求的时候,服务器返回给浏览器一个特殊的响应,这个特殊的响应告诉浏览器再向另外一个地址发送一个请求!

 

转发和重定向的区别:

       发生在浏览器端仍是服务器      浏览器的请求次数            浏览器地址栏是否发生变化               浏览器是否可以感知到

转发[request] 发生在服务器端                 1                     不发生变化                             感知不到

重定向[response]    发生在浏览器端                 2                      发生变化                               能感知到!

 

13.登陆练习和注册练习

 

 

14.编码问题分析

通讯双方在进行通讯的时候,其实是将通讯的内容【信息】是按照必定的规则转化为二进制进行通信的

而这个必定的规则就是字符的编码:ascii,gb2312,gbk,iso8859-1,utf-8;

 

在请求到达的时候,另外一方就须要解码!

 

乱码缘由:

通讯双方的编码方式和解码方式不一致形成的,

解决办法:

统一通讯双方的编码方式和解码方式,都使用utf-8编码!

 

编码分类:

   请求编码

浏览器编码---》服务器解码iso8859-1

   响应编码

     服务器编码----》浏览器解码

 服务器端默认使用的是iso8859-1编码,而浏览器默认使用的是gb2312,固然咱们也能够在页面中告诉浏览器用什么编码方式!

 

15.请求编码

get请求:

  统一浏览器和服务器端的编码格式为utf-8编码:在server.xml文件的connector标签中指定编码格式为utf-8编码:URIEncoding="utf8"  

post请求!

  咱们能够在post方法中在第一次获取请求参数以前经过request.setCharacterEncoding("utf-8");来设置解码格式!

  

 

16.响应编码

 

 

 

17.路径问题:

        ①相对路径和绝对路径

  绝对路径

 

  相对路径

 

②常见的路径:

url-pattern

转发的路径:

> 这两个的绝对路径由服务器解析,相对于项目的根目录

http://主机地址:端口号/项目名/

 

重定向的路径:

页面中的路径:

> 这两个路径有浏览器解析,相对于服务器的根目录

http://主机地址:端口号/

 

18.base标签

相关文章
相关标签/搜索