JavaWeb Servlet的原理和使用

实现上面所有方法

Servlet的配置

========================================================================

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的生命周期是由服务器来进行管理的,主要的生命周期有:

  1. 实例化

用户第一次访问该Servlet类时,就会创建一个Servlet的实例,该实例保存在Tomcat中。(注意一个Servlet类只有一个实例)

默认情况下,Servlet第一次被访问时被创建

在标签下配置执行Servlet的创建时机

  • 第一次被访问时创建

负数

  • 在服务器启动时创建

0或正整数

  1. 初始化

init方法,用户第一次访问时,先实例化,然后初始化

  1. 服务

调用service方法,给用户提供服务,用户每访问一次,就调用一次

  1. 销毁

调用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”);

}

}

Servlet的请求和响应参数

=============================================================================

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();

}

}

客户端表单:

用户的注册
账号

总结

对于面试还是要好好准备的,尤其是有些问题还是很容易挖坑的,例如你为什么离开现在的公司(你当然不应该抱怨现在的公司有哪些不好的地方,更多的应该表明自己想要寻找更好的发展机会,自己的一些现实因素,比如对于我而言是现在应聘的公司离自己的家更近,又或者是自己工作到达了迷茫期,想跳出迷茫期等等)

image

Java面试精选题、架构实战文档

整理不易,觉得有帮助的朋友可以帮忙点赞分享支持一下小编~

你的支持,我的动力;祝各位前程似锦,offer不断!

加入社区:https://bbs.csdn.net/forums/4304bb5a486d4c3ab8389e65ecb71ac0
“50%”>

账号

总结

对于面试还是要好好准备的,尤其是有些问题还是很容易挖坑的,例如你为什么离开现在的公司(你当然不应该抱怨现在的公司有哪些不好的地方,更多的应该表明自己想要寻找更好的发展机会,自己的一些现实因素,比如对于我而言是现在应聘的公司离自己的家更近,又或者是自己工作到达了迷茫期,想跳出迷茫期等等)

[外链图片转存中…(img-BDIPUL0u-1725645771203)]

Java面试精选题、架构实战文档

整理不易,觉得有帮助的朋友可以帮忙点赞分享支持一下小编~

你的支持,我的动力;祝各位前程似锦,offer不断!

加入社区:https://bbs.csdn.net/forums/4304bb5a486d4c3ab8389e65ecb71ac0

  • 4
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值