Servlet:
java类必须符合一定的规范:
a.必须继承 javax.servlet.http.HttpServlet
b.必须重写其中的doGet()或doPost()方法
c.配置:
Servlet2.5 :
web.xml
< servlet >
< servlet-name >随便名字,一般同类名< /servlet-name >
< servlet-class >全类名< /servlet-class >
< /servlet >
< servlet-mapping >
< servlet-name >名字同上< /servlet-mapping >
< url-pattern >访问路径,(如/Servlet) < /url-pattern >
< /servlet-mapping >
Servlet3.0 :
@WebServlet:
在Servlet类的定义处上写 注解@WebServlet(value = “url-patternd的值”)value = 可不写
根目录问题:(如Web项目中src和WebContent都是构建路径,根目录)
如果:index.jsp中请求< a href = “abc” >…< /a >,既在src根目录中找,也会在WebContent中找abc
< a href = “a/abc” >…< /a > 现在src或webContent中找a目录,再找abc
/:
web.xml中,/代表项目根目录:
http://localhost:8080/Project/
jsp中,/代表服务器根目录:
http://localhost:8080/
Servlet生存周期
加载
初始化 init() : Servlet被加载并实例化的以后执行
服务 service() -> doGet() doPost()
销毁 destory() : 服务关闭时执行
卸载
init():
a.第一次访问Servlet时会被执行,仅一次
b. 可修改为服务启动时自动执行:
2.5:在web.xml中要设置的servlet的servlet标签里加< load-on-startup >1< /load-on-startup >,其中1为设置多个servlet时的启动顺序
3.0 :注解内加 loadOnStartup = 1
所有javax.servlet.http包中的类和接口都继承、实现于
ServletConfig
该接口主要方法:
ServletContext getServletContext() //获取Servlet上下文对象 application
String getInitParameter(String name) // 在当前Servlet范围内,获取名为name的参数值
即获取初始化参数;设置初始值方法:
2.5:
web.xml
< servlet >
< >
< / >
< /servlet >
3.0
在注解中加 initParams = { @WebInitParam(name = " " , value = " ") }
a. ServletContext中常见方法(application):
getContextPath(); getRealPath();
setAttribute(); getAttribute();
String getInitParameter(String name) // 在当前Web容器范围内,获取名为name的参数值
只在web.xml中
< context - param >
< param - name >name< /param - name >
< param - value >value< /param - value >
< /context - param >
HttpServletRequest、HttpServletResponse
request、response就是各自的对象
编码问题
request.setCharacterEncoding(“utf-8”);
response.setCharacterEncoding(“utf-8”);
response.setContentType(“text/html;charset=UTF-8”);//可去jsp处复制