Servlet实战
一般在实际项目开发中,都是使用继承 HttpServlet 类的方式去实现 Servlet 程序。
实现步骤:
- 创建一个web工程,导入Servlet依赖
- 编写一个类去实现HttpServlet类
- 根据业务需要重写doGet或者doPost方法
- 到web.xml中配置Servlet访问地址。
1. 创建一个web工程,导入Servlet依赖
如何在一个工程下加入web组件?
工程右击-->Add Framework Support...
-->勾选web应用
Servlet依赖
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>javax.servlet-api</artifactId>
<version>3.1.0</version>
</dependency>
<!-- https://mvnrepository.com/artifact/javax.servlet.jsp/javax.servlet.jsp-api -->
<dependency>
<groupId>javax.servlet.jsp</groupId>
<artifactId>javax.servlet.jsp-api</artifactId>
<version>2.3.3</version>
</dependency>
2. 编写一个类继承HttpServlet
3. 根据业务需要重写doGet或者doPost方法
public class MyServlet extends HttpServlet {
@Override
protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
//1. 获取前端参数
String method = req.getParameter("method");
if (method.equals("add"))
{
req.getSession().setAttribute("msg","执行了add方法");
}
if (method.equals("delete"))
{
req.getSession().setAttribute("msg","执行了delete方法");
}
//2. 调用业务层
//3. 视图转发或者重定向,这里需要写一下跳转页面
req.getRequestDispatcher("/WEB-INF/jsp/test.jsp").forward(req,resp);
}
@Override
protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
doGet(req,resp);
}
}
4. 到web.xml中配置Servlet访问地址
<?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">
<servlet>
<servlet-name>hello</servlet-name>
<!--对应一个类-->
<servlet-class>com.bewind.MyServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>hello</servlet-name>
<url-pattern>/hello</url-pattern>
</servlet-mapping>
<!--欢迎页面-->
<!--<welcome-file-list>
<welcome-file>index.jsp</welcome-file>
</welcome-file-list>-->
</web-app>
配置服务器
见Tomcat实战
正常执行
上面的代码没有请求所以访问http://localhost:8080/ServletCombat_war_exploded/hello
会报错