httpServlet和servlet的关系如下图:
![在这里插入图片描述](https://img-blog.csdnimg.cn/20210707142919894.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzM2OTcyODI2,size_16,color_FFFFFF,t_70)
[](https://gitee.com/vip204888/java-p7)2.servlet原理及配置
-----------------------------------------------------------------------------
2.1原理图
![在这里插入图片描述](https://img-blog.csdnimg.cn/20210707142937283.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzM2OTcyODI2,size_16,color_FFFFFF,t_70)
[免费领取资料](https://gitee.com/vip204888/java-p7)
2.2 配置及源码
在查看servlet源码的过程中,发现HttpServlt中请求最终都会指向错误,因此必须继承HttpServlet重写对应的请求方法。
**报错代码:**
首先在web.xml中配置servlet的路径及映射,如下:
![](https://img-blog.csdnimg.cn/20210707143029172.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzM2OTcyODI2,size_16,color_FFFFFF,t_70)
继承了HttpServlet类的子类代码,直接使用父类的doGet
public class TestServlet extends HttpServlet {
@Override
protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
System.out.println("test 的 servlet");
super.doGet(req, resp);
}
响应结果:
![在这里插入图片描述](https://img-blog.csdnimg.cn/20210707143109444.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzM2OTcyODI2,size_16,color_FFFFFF,t_70)
**修改web.xml中servlet类为重写了doGet方法的类**
配置:
![](https://img-blog.csdnimg.cn/20210707143131906.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzM2OTcyODI2,size_16,color_FFFFFF,t_70)
[免费领取资料](https://gitee.com/vip204888/java-p7)
代码:
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
response.setContentType("text/html");
PrintWriter out = response.getWriter();
out.println("<html>");
out.println("<head>");
out.println("<title>Hello World!</title>");
out.println("</head>");
out.println("<body>");
out.println("<h1>Hello Servlet!</h1>");
out.println("Method: " + request.getMethod());
out.println("Request URI: " + request.getRequestURI());
out.println("Protocol: " + request.getProtocol());
out.println("PathInfo: " + request.getPathInfo());
out.println("Remote Address: " + request.getRemoteAddr());
out.println("</body>");
总结
三个工作日收到了offer,头条面试体验还是很棒的,这次的头条面试好像每面技术都问了我算法,然后就是中间件、MySQL、Redis、Kafka、网络等等。
如果你对下面我说的这些笔记感兴趣,可以点赞+关注后,戳这里即可免费领取
- 第一个是算法
关于算法,我觉得最好的是刷题,作死的刷的,多做多练习,加上自己的理解,还是比较容易拿下的。
而且,我貌似是将《算法刷题LeetCode中文版》、《算法的乐趣》大概都过了一遍,尤其是这本
《算法刷题LeetCode中文版》总共有15个章节:编程技巧、线性表、字符串、栈和队列、树、排序、查找、暴力枚举法、广度优先搜索、深度优先搜索、分治法、贪心法、动态规划、图、细节实现题
《算法的乐趣》共有23个章节:
- 第二个是Redis、MySQL、kafka(给大家看下我都有哪些复习笔记)
基本上都是面试真题解析、笔记和学习大纲图,感觉复习也就需要这些吧(个人意见)
- 第三个是网络(给大家看一本我之前得到的《JAVA核心知识整理》包括30个章节分类,这本283页的JAVA核心知识整理还是很不错的,一次性总结了30个分享的大知识点)
,感觉复习也就需要这些吧(个人意见)
[外链图片转存中…(img-CrDMDWuZ-1628588876303)]
- 第三个是网络(给大家看一本我之前得到的《JAVA核心知识整理》包括30个章节分类,这本283页的JAVA核心知识整理还是很不错的,一次性总结了30个分享的大知识点)