黑马程序员技术交流社区
标题:
【石家庄校区】java小白总结前端第12天的笔记-Servlet
[打印本页]
作者:
隔壁小白
时间:
2017-11-27 23:17
标题:
【石家庄校区】java小白总结前端第12天的笔记-Servlet
#Servlet
*使用servletRequest 接收参数
*解决中文乱码问题
*post请求
req.setCharacterEncoding("UTF-8"),放在getParameter之前
*get请求
String username = req.getParameter("username");
username = new String (username.getBytes("ISO-8859-1"),"UTF-8");
*响应中文乱码问题
res.setContentType("text/html;charset=utf-8")
res.getWriter().println("你好你好");
*servlet的生命周期
生命周期:
就是一个对象从创建到销毁的过程.
Servlet的生命周期:
Servlet从创建到销毁的过程
创建:
客户第一次访问Servlet是创建Servlet的实例
销毁:
当项目从服务器中移除的时候,或者关闭服务器的时候.
Servlet只创建一次,说明Servlet是单例的
*
用户第一次访问
Servlet
的时候
,
服务器会创建一个
Servlet
的实例
,
那么
Servlet
中
init
方法就会执行
.
任何一次请求服务器都会创建一个新的线程访问
Servlet
中的
service
的方法
.
在
service
方法内部根据请求的方式的不同调用
doXXX
的方法
.(get
请求调用
doGet,post
请求调用
doPost).
当
Servlet
中服务器中移除掉
,
或者关闭服务器
,Servlet
的实例就会被销毁
,
那么
destroy
方法就会执行
.
*servlet的相关配置
*启动时创建Servlet
Servlet
默认是在第一次访问的时候创建的
.
现在让
Servlet
在服务器启动的时候创建好
.
进行对
Servlet
的配置
:
在
web.xml
中在
<servlet></servlet>
标签中配置
:
*
<load-on-startup>2</load-on-startup>
---
传入正整数
,
整数越小
,
被创建的优先级就越高
.
*url-pattern的配置
共有三种配置方式
1.完全路径匹配:以 / 开始
eg:/ServletDemo4,
2.目录匹配:以 / 开始,需要以 * 结束
eg:/*, /aaa/*,
3.扩展名匹配:不能以 / 开始, 以 * 开始
eg:*.do,*.action
匹配优先级:完全路径匹配>目录匹配>扩展名匹配
*开发中路径的编写
相对路径:
都是需要找位置的相对关系. 不能以 / 开始.
* ./
当前路径
../
上一级目录
*
使用相对路径访问
:
*
http://localhost:8080/day09/demo4-url/demo1.html
*
http://localhost:8080/day09/ServletDemo6
绝对路径:
* 绝对路径中分为客户端路径和服务器端路径:
* 客户端路径一定要加工程名. /day09/ServletDemo6
* 服务器端路径不需要加工程名. /ServletDemo6
只有转发是服务器端路径
一般都写客户端路径(加项目名),遇错就改.
*ServletContext对象
***ServletContext存的数据都有一定的作用的范围,这种对象成为域对象
*用来存取数据:
*用来向ServletContext中存入数据
setAttribute(String name,Object object)
*用来向ServletContext中获取数据
getAttribute(String name)
*用来从ServletContext中移除数据
removeAttribute(String name)
*设置时间跳转页面
response.setHeader("Refresh", "5,url=/day12-Demo2/CountServlet");
*response中设置响应头
* addHeader(String name,String value); ---
针对一个
key
对应多个
value
的响应头
.
* addDateHeader(String name,long date);
* addIntHeader(String name,int value);
* setHeader(String name,String value); ---
针对一个
key
对应一个
value
的响应头
.
* setDateHeader(String name,long date);
* setIntHeader(String name,int value);
例如
:
头信息
: xxx:aaa
* addHeader(
“
xxx
”
,
”
bbb
”
); -->xxx:aaa,bbb
* setHeader(
“
xxx
”
,
”
bbb
”
); -->xxx:bbb
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2