实现上面所有方法
========================================================================
Servlet定义后,需要在服务器配置,用户才能访问到。
在web.xml配置
MyServlet
com.java29.MyServlet
MyServlet
/MyServlet.do
调用过程:
web.xml其它的配置:
index.html
404
/404.html
Servlet3.0支持,使用WebServlet注解配置
在类前面加:
@WebServlet(“/Servlet的URL”)
对比两种注册方法:
-
使用注解比较简单,缺点是使用硬编码方式进行注册,后面如果需要修改就需要修改源代码。
-
使用XML比较繁琐,优点是XML可以在网站部署后进行修改。
==========================================================================
Servlet的生命周期是由服务器来进行管理的,主要的生命周期有:
- 实例化
用户第一次访问该Servlet类时,就会创建一个Servlet的实例,该实例保存在Tomcat中。(注意一个Servlet类只有一个实例)
默认情况下,Servlet第一次被访问时被创建
在标签下配置执行Servlet的创建时机
- 第一次被访问时创建
负数
- 在服务器启动时创建
0或正整数
- 初始化
init方法,用户第一次访问时,先实例化,然后初始化
- 服务
调用service方法,给用户提供服务,用户每访问一次,就调用一次
- 销毁
调用destroy方法,释放各种资源,在Tomcat关闭时调用
案例代码:
/**
- 测试Servlet的生命周期
*/
@WebServlet(“/lifecircle.do”)
public class LifecircleServlet extends HttpServlet{
public LifecircleServlet(){
System.out.println(“实例化LifecircleServlet”);
}
@Override
public void service(ServletRequest req, ServletResponse res) throws ServletException, IOException {
super.service(req, res);
System.out.println(“LifecircleServlet进行服务”);
}
@Override
public void destroy() {
super.destroy();
System.out.println(“LifecircleServlet进行销毁”);
}
@Override
public void init() throws ServletException {
super.init();
System.out.println(“LifecircleServlet进行初始化”);
}
@Override
protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
System.out.println(“LifecircleServlet调用doGet”);
}
}
=============================================================================
service方法用于处理用户请求,参数:
- HttpServletRequest 请求参数,包含请求URL、方法、参数等信息
主要方法:
-
String getParameter(“参数名”) 获得请求中的参数
-
setCharacterEncoding(“编码类型”) 设置请求的编码
-
getMethod() 获得请求方法类型,Get、POST…
-
getRequestURL() 获得请求的URL
-
HttpServletResponse 响应参数,给浏览器提供响应的交互
主要方法:
-
PrintWriter getWriter() 获得输出流,向浏览器发送信息
-
sendRedirect(“页面地址”) 实现页面的跳转
-
setCharacterEncoding(“编码类型”) 设置响应的编码
案例:Servlet接受浏览器发送的请求参数
@WebServlet(“/register.do”)
public class RegisterServlet extends HttpServlet{
@Override
protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
System.out.println(“doGet”);
doPost(req,resp);
}
@Override
protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
//设置请求的编码
req.setCharacterEncoding(“UTF-8”);
//设置响应的编码
resp.setContentType(“text/html;charset=UTF-8”);
//获得请求参数
String username = req.getParameter(“username”);
//解决get提交参数的中文乱码
//username = new String(username.getBytes(“ISO-8859-1”),“UTF-8”);
String password = req.getParameter(“password”);
String pid = req.getParameter(“pid”);
String phone = req.getParameter(“phone”);
//输出参数
System.out.println(username+“,”+password+“,”+pid+“,”+phone);
//获得响应对象的输出流
PrintWriter pw = resp.getWriter();
pw.println(username+“你好啊”);
pw.close();
}
}
客户端表单:
总结
对于面试还是要好好准备的,尤其是有些问题还是很容易挖坑的,例如你为什么离开现在的公司(你当然不应该抱怨现在的公司有哪些不好的地方,更多的应该表明自己想要寻找更好的发展机会,自己的一些现实因素,比如对于我而言是现在应聘的公司离自己的家更近,又或者是自己工作到达了迷茫期,想跳出迷茫期等等)
Java面试精选题、架构实战文档
整理不易,觉得有帮助的朋友可以帮忙点赞分享支持一下小编~
你的支持,我的动力;祝各位前程似锦,offer不断!
加入社区:https://bbs.csdn.net/forums/4304bb5a486d4c3ab8389e65ecb71ac0
“50%”>
总结
对于面试还是要好好准备的,尤其是有些问题还是很容易挖坑的,例如你为什么离开现在的公司(你当然不应该抱怨现在的公司有哪些不好的地方,更多的应该表明自己想要寻找更好的发展机会,自己的一些现实因素,比如对于我而言是现在应聘的公司离自己的家更近,又或者是自己工作到达了迷茫期,想跳出迷茫期等等)
[外链图片转存中…(img-BDIPUL0u-1725645771203)]
Java面试精选题、架构实战文档
整理不易,觉得有帮助的朋友可以帮忙点赞分享支持一下小编~
你的支持,我的动力;祝各位前程似锦,offer不断!
加入社区:https://bbs.csdn.net/forums/4304bb5a486d4c3ab8389e65ecb71ac0