servlet知识点摘记

IDEA创建一个servlet项目:https://blog.csdn.net/qq_33360009/article/details/105161866

github:https://github.com/xaioheilj/HelloServlet.git

流程:Servlet实例化-》初始化init(ServletConfig) 方法-》实现service方法执行服务 -》销毁destroy()-》回收

中文问题:

1.<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">

2.request.setCharacterEncoding("UTF-8");  

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

在Servlet中进行服务端跳转的方式:

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

在Servlet中进行客户端跳转的方式:

response.sendRedirect("fail.html");

 

配置servlet自动化:

在web.xml中,配置Servlet的<servlet></servlet>,增加一句

<load-on-startup>10</load-on-startup>

10表示启动顺序
如果有多个Servlet都配置了自动启动,数字越小,启动的优先级越高 ,取值范围是1-99,即表明该Servlet会随着Tomcat的启动而初始化。(之前只有访问页面的时候才能进行servlet初始化)

request常用方法:

request.getRequestURL(): 浏览器发出请求时的完整URL,包括协议 主机名 端口(如果有)"
request.getRequestURI(): 浏览器发出请求的资源名部分,去掉了协议和主机名"
request.getQueryString(): 请求行中的参数部分,只能显示以get方式发出的参数,post方式的看不到
request.getRemoteAddr(): 浏览器所处于的客户机的IP地址
request.getRemoteHost(): 浏览器所处于的客户机的主机名
request.getRemotePort(): 浏览器所处于的客户机使用的网络端口
request.getLocalAddr(): 服务器的IP地址
request.getLocalName(): 服务器的主机名
request.getMethod(): 得到客户机请求方式一般是GET或者POST

request.getParameter(): 是常见的方法,用于获取单值的参数
request.getParameterValues(): 用于获取具有多值的参数,比如注册时候提交的 "hobits",可以是多选的。
request.getParameterMap(): 用于遍历所有的参数,并返回Map类型。 

request.getHeader() 获取浏览器传递过来的头信息。
比如getHeader("user-agent") 可以获取浏览器的基本资料,这样就能判断是firefox、IE、chrome、或者是safari浏览器
request.getHeaderNames() 获取浏览器所有的头信息名称,根据头信息名称就能遍历出所有的头信息

request.setAttribute和request.getAttribute可以用来在进行服务端跳转的时候,在不同的Servlet之间进行数据共享

response常用方法:

response.getWriter(); 获取一个PrintWriter 对象,可以使用println(),append(),write(),format()等等方法设置返回给浏览器的html内容 

response.setContentType("text/html");
"text/html" 是即格式 ,在request获取头信息 中对应的request.getHeader("accept").

 

设置响应编码有两种方式

1. response.setContentType("text/html; charset=UTF-8");//不仅发送到浏览器的内容会使用UTF-8编码,而且还通知浏览器使用UTF-8编码方式进行显示

2. response.setCharacterEncoding("UTF-8");//仅仅是发送的浏览器的内容是UTF-8编码的

 

客户端有两种跳转
302 表示临时跳转:response.sendRedirect(".html");
301 表示永久性跳转:

response.setStatus(301);

response.setHeader("Location", "fail.html");

 

设置不使用缓存

用缓存可以加快页面的加载,降低服务端的负担。但是也可能看到过时的信息,可以通过如下手段通知浏览器不要使用缓存
response.setDateHeader("Expires",0 );

response.setHeader("Cache-Control","no-cache");

response.setHeader("pragma","no-cache");

1.利用DiskFileItemFactory实现文件上传:https://blog.csdn.net/u014785687/article/details/73863964 

     注意:如果创建的不是Maven类型的项目是没有pom.xml文件的,需要将commons-io-1.4.jar和commons-fileupload-         1.2.2.jar两个jar包额外添加到web->WEB-INF->lib目录下

servlet实现CRUD:https://how2j.cn/k/servlet/servlet-query/563.html?p=68555

   使用IDEA创建的工程代码 Github:https://github.com/xaioheilj/ServeletCRUDandJSON.git 

 

 

 

 

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章