分享web开发知识

注册/登录|最近发布|今日推荐

主页 IT知识网页技术软件开发前端开发代码编程运营维护技术分享教程案例
当前位置:首页 > 前端开发

servlet及jsp之间的请求转发

发布时间:2023-09-06 02:31责任编辑:彭小芳关键词:jsjsp

1、servlet间的请求转发

 ?<dependencies> ???<dependency> ?????<groupId>javax.servlet</groupId> ?????<artifactId>javax.servlet-api</artifactId> ?????<version>3.1.0</version> ?????<scope>provided</scope> ???</dependency> ?</dependencies> ?<build> ???<finalName>servlet-demo</finalName> ???<plugins> ?????<plugin> ???????<groupId>org.mortbay.jetty</groupId> ???????<artifactId>jetty-maven-plugin</artifactId> ???????<version>8.1.16.v20140903</version> ???????<configuration> ?????????<scanIntervalSeconds>10</scanIntervalSeconds> ?????????<connectors> ???????????<connector implementation="org.eclipse.jetty.server.nio.SelectChannelConnector"> ?????????????<port>7777</port> ???????????</connector> ?????????</connectors> ?????????<webAppConfig> ???????????<contextPath>/</contextPath> ?????????</webAppConfig> ???????</configuration> ?????</plugin> ???</plugins> ?</build>
pom.xml
package com.test;import javax.servlet.RequestDispatcher;import javax.servlet.ServletException;import javax.servlet.annotation.WebServlet;import javax.servlet.http.HttpServlet;import javax.servlet.http.HttpServletRequest;import javax.servlet.http.HttpServletResponse;import java.io.IOException;@WebServlet("/myServlet")public class MyServlet extends HttpServlet { ???public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { ???????RequestDispatcher requestDispatcher = request.getRequestDispatcher("myServlet2"); ???????requestDispatcher.forward(request, response); ???} ???public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { ???????doGet(request, response); ???}}
myServlet
package com.demo;import javax.servlet.ServletException;import javax.servlet.annotation.WebServlet;import javax.servlet.http.HttpServlet;import javax.servlet.http.HttpServletRequest;import javax.servlet.http.HttpServletResponse;import java.io.IOException;@WebServlet("/myServlet2")public class MyServlert2 extends HttpServlet { ???public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { ???????response.getWriter().write("I am Servlet2"); ???} ???public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { ???????doGet(request, response); ???}}
myServlet2

myServlet和myServlet2在不同的包,但请求转发时不需要使用—— ../ 之类的相对路径,会自动寻找到适合的Servlet

2、servlet转发到jsp

 ?<dependencies> ???<dependency> ?????<groupId>javax.servlet</groupId> ?????<artifactId>javax.servlet-api</artifactId> ?????<version>3.1.0</version> ?????<scope>provided</scope> ???</dependency> ?</dependencies> ?<build> ???<finalName>servlet-demo</finalName> ???<plugins> ?????<plugin> ???????<groupId>org.mortbay.jetty</groupId> ???????<artifactId>jetty-maven-plugin</artifactId> ???????<version>8.1.16.v20140903</version> ???????<configuration> ?????????<scanIntervalSeconds>10</scanIntervalSeconds> ?????????<connectors> ???????????<connector implementation="org.eclipse.jetty.server.nio.SelectChannelConnector"> ?????????????<port>7777</port> ???????????</connector> ?????????</connectors> ?????????<webAppConfig> ???????????<contextPath>/</contextPath> ?????????</webAppConfig> ???????</configuration> ?????</plugin> ???</plugins> ?</build>
pom.xml
package com.test;import javax.servlet.RequestDispatcher;import javax.servlet.ServletException;import javax.servlet.annotation.WebServlet;import javax.servlet.http.HttpServlet;import javax.servlet.http.HttpServletRequest;import javax.servlet.http.HttpServletResponse;import java.io.IOException;@WebServlet("/myServlet")public class MyServlet extends HttpServlet { ???public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { ???????RequestDispatcher requestDispatcher = request.getRequestDispatcher("/WEB-INF/my.jsp"); ???????requestDispatcher.forward(request, response); ???} ???public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { ???????doGet(request, response); ???}}
myServlet
<html><body><h2>Hello World! I am Mike</h2></body></html>
my.jsp

3、jsp里使用java代码转发到servlet

 ?<dependencies> ???<dependency> ?????<groupId>javax.servlet</groupId> ?????<artifactId>javax.servlet-api</artifactId> ?????<version>3.1.0</version> ?????<scope>provided</scope> ???</dependency> ???<dependency> ?????<groupId>javax.servlet.jsp</groupId> ?????<artifactId>javax.servlet.jsp-api</artifactId> ?????<version>2.2.1</version> ?????<scope>provided</scope> ???</dependency> ?</dependencies> ?<build> ???<finalName>servlet-demo</finalName> ???<plugins> ?????<plugin> ???????<groupId>org.mortbay.jetty</groupId> ???????<artifactId>jetty-maven-plugin</artifactId> ???????<version>8.1.16.v20140903</version> ???????<configuration> ?????????<scanIntervalSeconds>10</scanIntervalSeconds> ?????????<connectors> ???????????<connector implementation="org.eclipse.jetty.server.nio.SelectChannelConnector"> ?????????????<port>7777</port> ???????????</connector> ?????????</connectors> ?????????<webAppConfig> ???????????<contextPath>/</contextPath> ?????????</webAppConfig> ???????</configuration> ?????</plugin> ???</plugins> ?</build>
pom.xml
<%-- 下面的内容相当于写在service方法里 --%><% ???RequestDispatcher requestDispatcher = request.getRequestDispatcher("myServlet"); ???requestDispatcher.include(request, response);%>
my.jsp
package com.test;import javax.servlet.ServletException;import javax.servlet.annotation.WebServlet;import javax.servlet.http.HttpServlet;import javax.servlet.http.HttpServletRequest;import javax.servlet.http.HttpServletResponse;import java.io.IOException;import java.io.PrintWriter;@WebServlet("/myServlet")public class MyServlet extends HttpServlet { ???public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { ???????response.setContentType("text/html; charset=utf-8"); ???????PrintWriter out = response.getWriter(); ???????out.println("<p>How are you</p>"); ???} ???public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { ???????doGet(request, response); ???}}
myServlet

4、jsp标准标签请求转发 

 ?<dependencies> ???<dependency> ?????<groupId>javax.servlet</groupId> ?????<artifactId>javax.servlet-api</artifactId> ?????<version>3.1.0</version> ?????<scope>provided</scope> ???</dependency> ???<dependency> ?????<groupId>javax.servlet.jsp</groupId> ?????<artifactId>javax.servlet.jsp-api</artifactId> ?????<version>2.2.1</version> ?????<scope>provided</scope> ???</dependency> ?</dependencies> ?<build> ???<finalName>servlet-demo</finalName> ???<plugins> ?????<plugin> ???????<groupId>org.mortbay.jetty</groupId> ???????<artifactId>jetty-maven-plugin</artifactId> ???????<version>8.1.16.v20140903</version> ???????<configuration> ?????????<scanIntervalSeconds>10</scanIntervalSeconds> ?????????<connectors> ???????????<connector implementation="org.eclipse.jetty.server.nio.SelectChannelConnector"> ?????????????<port>7777</port> ???????????</connector> ?????????</connectors> ?????????<webAppConfig> ???????????<contextPath>/</contextPath> ?????????</webAppConfig> ???????</configuration> ?????</plugin> ???</plugins> ?</build>
pom.xml
<%! ???private String name = "Mike Chang";%><%-- 下面的内容相当于写在service方法里 --%><p>I am <%= name %></p><jsp:include page="myServlet"/>
my.jsp
package com.test;import javax.servlet.ServletException;import javax.servlet.annotation.WebServlet;import javax.servlet.http.HttpServlet;import javax.servlet.http.HttpServletRequest;import javax.servlet.http.HttpServletResponse;import java.io.IOException;import java.io.PrintWriter;@WebServlet("/myServlet")public class MyServlet extends HttpServlet { ???public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { ???????response.setContentType("text/html; charset=utf-8"); ???????PrintWriter out = response.getWriter(); ???????out.println("<p>How are you</p>"); ???} ???public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { ???????doGet(request, response); ???}}
myServlet
I am Mike ChangHow are you
输出

5、jsp核心标签库请求转发

 ?<dependencies> ???<dependency> ?????<groupId>javax.servlet</groupId> ?????<artifactId>javax.servlet-api</artifactId> ?????<version>3.1.0</version> ?????<scope>provided</scope> ???</dependency> ???<dependency> ?????<groupId>javax.servlet.jsp</groupId> ?????<artifactId>javax.servlet.jsp-api</artifactId> ?????<version>2.2.1</version> ?????<scope>provided</scope> ???</dependency> ???<dependency> ?????<groupId>javax.servlet</groupId> ?????<artifactId>jstl</artifactId> ?????<version>1.2</version> ???</dependency> ?</dependencies> ?<build> ???<finalName>servlet-demo</finalName> ???<plugins> ?????<plugin> ???????<groupId>org.mortbay.jetty</groupId> ???????<artifactId>jetty-maven-plugin</artifactId> ???????<version>8.1.16.v20140903</version> ???????<configuration> ?????????<scanIntervalSeconds>10</scanIntervalSeconds> ?????????<connectors> ???????????<connector implementation="org.eclipse.jetty.server.nio.SelectChannelConnector"> ?????????????<port>7777</port> ???????????</connector> ?????????</connectors> ?????????<webAppConfig> ???????????<contextPath>/</contextPath> ?????????</webAppConfig> ???????</configuration> ?????</plugin> ???</plugins> ?</build>
pom.xml
<%@taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %><%! ???private String name = "Mike";%><%-- 下面的内容相当于写在service方法里 --%><p>I am <%= name %></p><c:import url="myServlet"/>
my.jsp
package com.test;import javax.servlet.ServletException;import javax.servlet.annotation.WebServlet;import javax.servlet.http.HttpServlet;import javax.servlet.http.HttpServletRequest;import javax.servlet.http.HttpServletResponse;import java.io.IOException;import java.io.PrintWriter;@WebServlet("/myServlet")public class MyServlet extends HttpServlet { ???public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { ???????response.setContentType("text/html; charset=utf-8"); ???????PrintWriter out = response.getWriter(); ???????out.println("<p>How are you</p>"); ???} ???public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { ???????doGet(request, response); ???}}
myServlet

servlet及jsp之间的请求转发

原文地址:https://www.cnblogs.com/Mike_Chang/p/10324904.html

知识推荐

我的编程学习网——分享web前端后端开发技术知识。 垃圾信息处理邮箱 tousu563@163.com 网站地图
icp备案号 闽ICP备2023006418号-8 不良信息举报平台 互联网安全管理备案 Copyright 2023 www.wodecom.cn All Rights Reserved