jsp页面转发到servlet
一个简单的例子来了解一下jsp页面转发到servlet的过程,环境 eclipse、tomcat
1.工程目录结构如下
2.各部分代码如下
1>index.jsp
<%@ page language="java" contentType="text/html; charset=utf-8" pageEncoding="utf-8"%> <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8"> <title>首页</title> </head> <body> <a href = "ForwardServlet">ForwardServlet</a><br> <a href = "MyServlet">MyServlet</a> </body> </html>
2>web.xml
<?xml version="1.0" encoding="UTF-8"?> <web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" id="WebApp_ID" version="2.5"> <servlet> <servlet-name>ForwardServlet</servlet-name> <servlet-class>com.scd.servlet.ForwardServlet</servlet-class> </servlet> <servlet-mapping> <servlet-name>ForwardServlet</servlet-name> <url-pattern>/ForwardServlet</url-pattern> </servlet-mapping> <servlet> <servlet-name>MyServlet</servlet-name> <servlet-class>com.scd.servlet.MyServlet</servlet-class> </servlet> <servlet-mapping> <servlet-name>MyServlet</servlet-name> <url-pattern>/MyServlet</url-pattern> </servlet-mapping> </web-app>
3>ForwardServlet.java
package com.scd.servlet; import java.io.IOException; import javax.servlet.ServletException; import javax.servlet.annotation.WebServlet; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; /** * Servlet implementation class ForwardServlet */ //@WebServlet("/ForwardServlet") public class ForwardServlet extends HttpServlet { private static final long serialVersionUID = 1L; /** * @see HttpServlet#HttpServlet() */ public ForwardServlet() { super(); // TODO Auto-generated constructor stub } /** * @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response) */ protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { // TODO Auto-generated method stub System.out.println("My First Servlet!"); } /** * @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response) */ protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { // TODO Auto-generated method stub } }
过程详解:当点击ForwardServlet连接时,请求到达服务器tomcat后,tomcat检查当前项目的web.xml中所有的<servlet-mapping></servlet-mapping>
配置中的<url-pattern></url-pattern>的属性值。看当中有没有一个和请求地址Forward相同。结果找到如,如下:
<servlet-mapping>
<servlet-name>ForwardServlet</servlet-name>
<url-pattern>/ForwardServlet</url-pattern>
</servlet-mapping>
其中 <url-pattern>/ForwardServlet</url-pattern> 是你访问地址
然后,tomcat找到和<servlet-mapping>相对应的<servlet-name>的<servlet>,根据<servlet-name>属性匹配, 找到了相同名字的
<servlet-name>ForwardServlet</servlet>
如下:
<servlet>
<servlet-name>ForwardServlet</servlet-name>
<servlet-class>com.scd.servlet.ForwardServlet</servlet-class>
</servlet>
根据上面的<servlet-class>找到Servlet文件ForwardServlet.class。
执行结果,在终端输出:
注意:在servlet中如果使用了注解@WebServlet("/ForwardServlet") ,那么在xml问件中就不需要配置该servlet的映射关系,如果两者都写了,开启服务器是会报错
The servlets named [ForwardServlet] and [com.scd.servlet.ForwardServlet] are both mapped to the url-pattern [/ForwardServlet] which is not permitted
jsp页面转发到servlet的更多相关文章
- jsp页面转发获取不到参数
使用的是<input type="hidden" name="nameid" value="${nameid}"/>,隐藏默认值 ...
- JSP页面实际上就是Servlet
注:图片如果损坏,点击文章链接:https://www.toutiao.com/i6513069824690618883/ 前面一直提到了Servlet的内容,也是我们平时理解的后台,这次说一下前台的 ...
- jsp页面编译成Servlet类文件
package org.apache.jsp; import javax.servlet.*; import javax.servlet.http.*; import javax.servlet.js ...
- Servlet小示例:jsp页面提交信息Servlet接收并打印输出
该示例采用doPost方法提交表单,该示例一共包含两个文件. 一个是用来提交用户信息的表单userForm2.jsp,另一个是用来接收参数的Servlet. userForm2.jsp <%@ ...
- JSP页面最终是编译为Servlet执行的
JSP页面最终是编译为Servlet执行的,你可以在Tomcat的%CATALINA_HOME%/work/Catalina/localhost中找到一个文件夹,该文件夹跟你的web-project的 ...
- JSP页面以及JSP九大隐式对象
JSP全称是Java Server Pages,它和servle技术一样,都是SUN公司定义的一种用于开发动态web资源的技术. JSP这门技术的最大的特点在于,写jsp就像在写html,但它相比 ...
- http页面转发和重定向的区别
一.调用方式 我们知道,在servlet中调用转发.重定向的语句如下:request.getRequestDispatcher("new.jsp").forward(request ...
- JSP页面以及简单的指令
JSP(Java Server Pages)是指: 在HTML中嵌入Java脚本语言 由应用服务器中的JSP引擎来编译和执行嵌入的Java脚本语言命令 然后将生成的整个页面信息返回给客户端 页 ...
- 动态jsp页面转PDF输出到页面
最近工作中遇到不少问题.总结一下.这段代码主要功能是将一个生成JSP页面转发成PDF输出到页面 需要利用ITEXT String html = ServletUtils.forward(request ...
随机推荐
- Oracle数据库安装完成之后的启动操作
由于是菜鸟,在 完成Oracle数据库的安装之后,不知道该怎么启动.在经过一番折腾之后明白了其中的一些道理,总结如下: 其实Oracle数据库和Mysql数据库的启动都是相同的原理. Mysql数据库 ...
- mysql sql灵活运用
1.mysq获取表的字段及属性 SELECT * FROM information_schema.COLUMNS WHERE table_name = 'item_url'; 2.正则表达式 SELE ...
- php nl2br() 函数
nl2br() 函数在字符串中的每个新行 (\n) 之前插入 HTML 换行符 (<br />).
- UVA 10269 Adventure of Super Mario
看了这里 http://blog.csdn.net/acm_cxlove/article/details/8679230的分析之后自己又按照自己的模板写了一遍,算是对spfa又加深了一步认识(以前真是 ...
- [jobdu]数组中出现次数超过一半的数字
找到以后要再扫一遍确认. http://zhedahht.blog.163.com/blog/static/25411174201085114733349/ #include <iostream ...
- !!Python字典增删操作技巧简述+Python字典嵌套字典与排序
http://developer.51cto.com/art/201003/186006.htm Python编程语言是一款比较容易学习的计算机通用型语言.对于初学者来说,首先需要掌握的就是其中的一些 ...
- Android 内核初识(8)Binder
简介 Binder是Android系统提供的一种IPC(进程间通信)机制.由于Android是基于Linux内核的,因此,除了Binder外,还存在其他的IPC机制,例如管道和socket等.Bind ...
- 注意EntityFramework.extended中的坑
EntityFramework.extended 的好处就不用多说了 详情:https://github.com/loresoft/EntityFramework.Extended 但是使用时还是要注 ...
- BZOJ_3270_博物馆_(高斯消元+期望动态规划+矩阵)
描述 http://www.lydsy.com/JudgeOnline/problem.php?id=3270 \(n\)个房间,刚开始两个人分别在\(a,b\),每分钟在第\(i\)个房间有\(p[ ...
- 创建通用型framework
http://years.im/Home/Article/detail/id/52.html http://www.cocoachina.com/industry/20131204/7468.html ...