HttpServletRequest和HttpServletResponse

1. servlet的注册方式

在3.0版本的web工程默认是不创建web.xml配置文件的,需要一直点next最后一项勾选上

HttpServletRequest和HttpServletResponse_第1张图片

HttpServletRequest和HttpServletResponse_第2张图片

web.xml里的配置格式,EncodingServlet是原本EncodingServlet.java,右击new一个servlet会在web.xml生成以下


    
    EncodingServlet
    EncodingServlet
    com.liuyi.servlet.EncodingServlet//类的路径
  
  
    EncodingServlet
    /EncodingServlet//浏览器访问的路径
  

浏览器访问的路径可以自定

 1. 全路径匹配

以 / 开始   /a /aa/bb

 localhost:8080/项目名称/aa/bb 

2.  路径匹配 , 前半段匹配

以  / 开始 , 但是以 * 结束  /a/* /*  

 其实是一个通配符,匹配任意文字

localhost:8080/项目名称/aa/bb 

3.  以扩展名匹配

写法: 没有/  以 * 开始   *.扩展名    *.aa *.bb 

 

2. servletContext作用

1. 获取全局配置参数

web.xml里存了信息,可取出值为北京

HttpServletRequest和HttpServletResponse_第3张图片

HttpServletRequest和HttpServletResponse_第4张图片

2. 获取web工程中的资源

1. 获取资源在tomcat里面的绝对路径

HttpServletRequest和HttpServletResponse_第5张图片目录结构如左,默认读取文件是在WebContent下

ServletContext context=getServletContext();
		
String path=context.getRealPath("/config.properties");
//path=G:\计算机学习\apache-tomcat-9.0.12\webapps\HelloServlet\config.properties

2. getResourceAsStream,直接用IputSteam接收

ServletContext context=getServletContext();
InputStream is=context.getResourceAsStream("/config.properties");

3. 存取数据,servlet间共享数据

ServletContext context=getServletContext();
context.setAttribute("count");
context.getAttribute("count");

 

3. ServletContext 何时创建, 何时销毁?

服务器启动的时候,会为托管的每一个web应用程序,创建一个ServletContext对象

从服务器移除托管,或者是关闭服务器。

  • ServletContext 的作用范围

只要在这个项目里面,都可以取。 只要同一个项目。 A项目 存, 在B项目取,是取不到的? ServletContext对象不同。

 

4 HttpServletRequest

1. 获取请求头信息

//得到一个枚举集合  
Enumeration headerNames = request.getHeaderNames();
while (headerNames.hasMoreElements()) {
    String name = (String) headerNames.nextElement();
    String value = request.getHeader(name);
    System.out.println(name+"="+value);

}

2. 获取客户端传来的信息,需要客户端有这个名字的信息,name和address

String name = request.getParameter("name");
String address = request.getParameter("address");
System.out.println("name="+name);
System.out.println("address="+address);

3. 获取中文信息

get方式请求

System.out.println("userName="+username+"==password="+password);

//get请求过来的数据,在url地址栏上就已经经过编码了,所以我们取到的就是乱码,
//tomcat收到了这批数据,getParameter 默认使用ISO-8859-1去解码

//先让文字回到ISO-8859-1对应的字节数组 , 然后再按utf-8组拼字符串
username = new String(username.getBytes("ISO-8859-1") , "UTF-8");
System.out.println("userName="+username+"==password="+password);

//直接在tomcat里面做配置,以后get请求过来的数据永远都是用UTF-8编码。 可以在tomcat里面做设置处理 conf/server.xml 加上URIEncoding="utf-8"

post方式请求

request.setCharacterEncoding("UTF-8");
//写在getParameter

 

4. HttpServletReponse

输出信息到页面上

response.getWriter.write("你好");

response.getOutputStream.write("你好".getBytes());

//有中文时可能会乱码,在最前面设置这个

response.setContentType("text/html;charset=utf-8");

 

你可能感兴趣的:(后端)