前言:
现时兄弟们对“将servlet数据传到jsp”大致比较关注,兄弟们都需要学习一些“将servlet数据传到jsp”的相关知识。那么小编同时在网上网罗了一些对于“将servlet数据传到jsp””的相关内容,希望看官们能喜欢,姐妹们一起来了解一下吧!本文主要介绍不用Spring框架,用原生Servlet/JSP写一个简单的 Servlet/JSP 网站示例,包含了常用的注解和接口,并用Docker部署到TOMCAT服务器,理解这些,对JAVA WEB开发大有益处。
1. 配置
在 web.xml 文件中配置 Servlet 和过滤器:
<web-app>
<servlet>
<servlet-name>MyServlet</servlet-name>
<servlet-class>com.example.MyServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>MyServlet</servlet-name>
<url-pattern>/myservlet</url-pattern>
</servlet-mapping>
<filter>
<filter-name>MyFilter</filter-name>
<filter-class>com.example.MyFilter</filter-class>
</filter>
<filter-mapping>
<filter-name>MyFilter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
<listener>
<listener-class>com.example.MyHttpSessionListener</listener-class>
</listener>
</web-app>
2. Servlet(MyServlet.java)
@WebServlet("/myservlet")
public class MyServlet extends HttpServlet {
@Override
protected void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
// 处理 GET 请求
String name = request.getParameter("name");
response.setContentType("text/html");
PrintWriter out = response.getWriter();
out.println("<html>");
out.println("<head>");
out.println("<title>Hello Servlet</title>");
out.println("</head>");
out.println("<body>");
out.println("<h1>Hello " + name + "!</h1>");
out.println("</body>");
out.println("</html>");
}
@Override
protected void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
// 处理 POST 请求
doGet(request, response);
}
}
3. 过滤器(MyFilter.java)
@WebFilter("/*")
public class MyFilter implements Filter {
@Override
public void init(FilterConfig filterConfig) throws ServletException {
// 初始化过滤器
}
@Override
public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain)
throws IOException, ServletException {
// 处理请求和响应
HttpServletRequest req = (HttpServletRequest) request;
HttpServletResponse resp = (HttpServletResponse) response;
HttpSession session = req.getSession();
String username = (String) session.getAttribute("username");
if (username != null) {
// 用户已登录,继续处理请求
chain.doFilter(request, response);
} else {
// 用户未登录,重定向到登录页面
resp.sendRedirect(req.getContextPath() + "/login.jsp");
}
}
@Override
public void destroy() {
// 销毁过滤器
}
}
4. 监听器(MyHttpSessionListener.java)
@WebListener
public class MyHttpSessionListener implements HttpSessionListener {
@Override
public void sessionCreated(HttpSessionEvent se) {
// HttpSession 创建时触发
}
@Override
public void sessionDestroyed(HttpSessionEvent se) {
// HttpSession 销毁时触发
}
}
5. JSP 页面(login.jsp)
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
<title>Hello JSP</title>
</head>
<body>
<h1>Hello <%= request.getParameter("name") %>!</h1>
</body>
</html>
以上是一个简单的 Servlet/JSP 网站示例,其中包含了常用的注解和接口。开发者可以根据需要进行修改和扩展。
下面介绍:部署 Servlet/JSP 网站到 Tomcat 服务器,可以使用 Docker 进行容器化部署。下面是详细的步骤:
1. 安装 Docker
首先需要在本地机器上安装 Docker。可以参考官方文档:
2. 编写 Dockerfile
在项目根目录下创建一个名为 Dockerfile 的文件,内容如下:
# 基础镜像
FROM tomcat:9.0.50-jdk11
# 将本地文件夹挂载到容器
ADD target/my-webapp.war /usr/local/tomcat/webapps/
# 暴露端口
EXPOSE 8080
其中,tomcat:9.0.50-jdk11 是基础镜像,my-webapp.war 是编译后的 WAR 包,8080 是 Tomcat 的默认端口。
3. 构建 Docker 镜像
在终端中进入项目根目录,执行以下命令构建 Docker 镜像:
docker build -t my-webapp . (注意最后一个 . 点是代表当前目录)
其中,my-webapp 是镜像的名称,可以自定义。
4. 运行 Docker 容器
执行以下命令启动容器:
docker run -d -p 8080:8080 my-webapp
其中,-d 表示后台运行,-p 表示将容器的 8080 端口映射到主机的 8080 端口,my-webapp 是之前构建的镜像名称。
5. 访问网站
在浏览器中访问 即可看到网站
以上是使用 Docker 部署 Servlet/JSP 网站到 Tomcat 服务器的详细过程,需要使用的工具是 Docker,需要编写 Dockerfile 文件,需要执行构建和运行命令。
标签: #将servlet数据传到jsp