Servlet
servlet简介
- sun公司开发动态web的一门技术
- sun在这些api中提供了一个接口:Servlet,如果想开发一个Servlet程序,只需完成两个小步骤
- 编写一个类,实现Servlet接口
- 把开发好的Java类部署到web服务器中
把实现了Servlet接口的Java程序叫做,Servlet
HelloServlet
(Day05写了一个hello1的servlet项目)
- 构建一个普通的maven项目,删掉里边的src目录,以后我们的学习就在这个项目里面建立moudel;这个空的工程就是maven主工程
- 关于maven父子工程的理解:
在父项目中会有
<modules>
<module>servlet-01</module>
</modules>
子项目中:(这里可能有的朋友是没有parent的,我也是后来自己加的,但是要中带你注意修改时要跟下图一摸一样,artifactId容易忽略)
父项目中的jar包,子项目可以直接使用
-
maven环境优化
- 修改web.xml为最新版本的(Day05里有)
换成下边的:
- 修改web.xml为最新版本的(Day05里有)
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns="http://xmlns.jcp.org/xml/ns/javaee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee
http://xmlns.jcp.org/xml/ns/javaee/web-app_4_0.xsd"
version="4.0"
metadata-complete="true">
</web-app>
//这里删掉了没有用的
-
将maven的结构搭建完整(在main下创建java和resources)
-
编写一个servlet程序
-
编写一个普通类
-
实现servlet接口
servlet在sun公司有两个实现类:HttpServlet和"老师没说是啥“
这里我们直接继承HttpServlet
package com.kuang.servlet; import javax.servlet.ServletException; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import java.io.IOException; import java.io.PrintWriter; public class HelloServlet extends HttpServlet { //由于get和post只是请求实现的不同的方式,可以相互调用,因为业务逻辑都一样 @Override protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { PrintWriter writer =resp.getWriter();//响应流 writer.print("hello servlet"); } @Override protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { doGet(req, resp); } }
-
-
编写Servlet的映射
为什么需要映射:我们写的是java程序等需要浏览器访问,但浏览器需要连接web服务器,我们需要在web服务器中注册我们写的Servlet,还需要给他一个浏览器进行访问
<servlet>
<servlet-name>hello</servlet-name>
<servlet-class>com.kuang.servlet.HelloServlet</servlet-class>
</servlet>
<!--servlet的请求路径-->
<servlet-mapping>
<servlet-name>hello</servlet-name>
<url-pattern>/hello</url-pattern>
</servlet-mapping>
注意:这里我当时忘记写请求路径名 <url-pattern>/hello</url-pattern>导致出现了奇怪的错误(大家一定要仔细检查这里,格式错误也不行)
- 配置tomcat
- 启动测试
正常访问走index.jsp,加了上边的请求路径后就走相应的程序了
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-7NHdhIWi-1613809799496)(C:\Users\10725\AppData\Roaming\Typora\typora-user-images\image-20210220162422348.png)]
- 配置tomcat
- 启动测试
正常访问走index.jsp,加了上边的请求路径后就走相应的程序了
- 更新
在一个项目里可以创建很多Moudel,在运行不同的Moudel时Tomcat配置的deployment需要跟新为新的,不更新也能使用,但是他会重新把之前的也一起打包,会变慢