java web基础 --- URL重定向Filter
java web基础 --- URL重定向Filter
httpRequest.getRequestDispatcher("/helloWorld").forward(httpRequest, response);
服务器端转发,不改变浏览器端URL地址,常用
httpResponse.sendRedirect(uri);
浏览器端重定向,改变URL在浏览器地址栏
URLOverWriteFilter.java
package com.web1.util; import java.io.IOException; import javax.print.attribute.standard.ReferenceUriSchemesSupported;
import javax.servlet.Filter;
import javax.servlet.FilterChain;
import javax.servlet.FilterConfig;
import javax.servlet.ServletException;
import javax.servlet.ServletRequest;
import javax.servlet.ServletResponse;
import javax.servlet.annotation.WebFilter;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse; /**
* Servlet Filter implementation class URLOverWriteFilter
*/
@WebFilter("/URLOverWriteFilter")
public class URLOverWriteFilter implements Filter { private FilterConfig config;
/**
* Default constructor.
*/
public URLOverWriteFilter() {
// TODO Auto-generated constructor stub
} /**
* @see Filter#destroy()
*/
public void destroy() {
// TODO Auto-generated method stub
} /**
* @see Filter#doFilter(ServletRequest, ServletResponse, FilterChain)
*/
public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException, ServletException {
//do something
String uri = "";
HttpServletRequest httpRequest = null;
if (request instanceof HttpServletRequest) {
httpRequest = (HttpServletRequest)request;
System.out.println("URL:" + httpRequest.getRequestURL().toString());
System.out.println("URI:" + httpRequest.getRequestURI().toString());
uri = httpRequest.getRequestURI();
uri = uri.replace("home.html", "helloWorld");
}
if (httpRequest.getRequestURI().indexOf("home.html") >= 0) {
/*if (response instanceof HttpServletResponse) {
HttpServletResponse httpResponse = (HttpServletResponse)response;
httpResponse.sendRedirect(uri);
}*/
httpRequest.getRequestDispatcher("/helloWorld").forward(httpRequest, response);
}
else{
//go to next Filter
chain.doFilter(request, response);
}
} /**
* @see Filter#init(FilterConfig)
*/
public void init(FilterConfig fConfig) throws ServletException {
this.config = fConfig;
} }
web.xml
按照filter-mapping的顺序
<?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_3_0.xsd" metadata-complete="true" version="3.0">
<description>
Hello World Servlet
</description>
<display-name>Hello World Servlet</display-name>
<filter>
<filter-name>Encode Filter</filter-name>
<filter-class>com.web1.util.RequestEncodeFilter</filter-class>
</filter>
<filter-mapping>
<filter-name>Encode Filter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping> <filter>
<filter-name>URLOverFilter Filter</filter-name>
<filter-class>com.web1.util.URLOverWriteFilter</filter-class>
</filter>
<filter-mapping>
<filter-name>URLOverFilter Filter</filter-name>
<url-pattern>/home.html</url-pattern>
</filter-mapping> <servlet>
<servlet-name>helloWorld</servlet-name>
<servlet-class>com.web1.hello.HelloWorldServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>helloWorld</servlet-name>
<url-pattern>/helloWorld</url-pattern>
</servlet-mapping>
<servlet>
<servlet-name>helloImage</servlet-name>
<servlet-class>com.web1.hello.ImageServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>helloImage</servlet-name>
<url-pattern>/helloImage</url-pattern>
</servlet-mapping>
</web-app>
java web基础 --- URL重定向Filter的更多相关文章
- Java Web之过滤器(Filter)
转: Java Web之过滤器(Filter) 2018年07月31日 16:58:40 喻志强 阅读数 13705更多 所属专栏: Java Web入门 版权声明:本文为博主原创文章, 转载请注 ...
- Java Web基础 --- Servlet 综述(理论篇)
摘要: Web 技术成为当今主流的互联网 Web 应用技术之一,而 Servlet 是 Java Web 技术的核心基础.本文首先从请求/响应架构应用的大背景谈起 Servlet 的由来,明确 Ser ...
- java web基础环境搭建
java web基础环境包括:(1)servlet容器也即tomcat(2)jre即java程序运行环境 环境变量配置:分别下载jdk和tomcat安装包. jdk环境变量配置: 第一步:系统环境变量 ...
- java web基础第一次作业
JAVA WEB基础 一.B/S架构 1.B/S架构简介: B是英文单词“Browser”的首字母,即浏览器的意思:S是英文单词“Server”的首字母,即服务器的意思.B/S就是“Browser/S ...
- Java Web基础入门
前言 语言都是相通的,只要搞清楚概念后就可以编写代码了.而概念是需要学习成本的. Java基础 不用看<编程思想>,基础语法看 http://www.runoob.com/java/jav ...
- java web基础之mvc模式设计(一)--使用httpservlet实现mvc分层设计,DAO层使用的是dbutils实现与数据库的链接
一:1.最终的实现效果图: 2.案例的目录结构: 3.案例中使用到的jar包: 二:案例的链接数据库的层次结构关系:数据库是:mysql ,数据库名字:dsm,表格名字:customers 数据库表格 ...
- java web基础
WEB基础 C/S:即服务器-客服机(Client-Server)结构.C/S结构通常采用两层结构,服务器负责数据的管理,客户机负责完成与用户的交互任务.客户通过局域网与服务器相连,接受用户的请求,并 ...
- tomcat 与 java web中url路径的配置以及使用规则详情(长期更新)
首先我们看一下在myeclipse中建立的java web项目的结构 在这里我们需要注意这个webroot也就是我们在tomcat里的webapp里面的应用 之所以每一个项目都有这个webroot,是 ...
- Java Web组件Servlet、Filter、Listener
一.Servlet 类javax.servlet.http.HttpServlet; 1.是单例模式,一个web容器中只有一个实例.服务器调用它的service方法进行请求处理, service方法又 ...
随机推荐
- java类对象
不错的文章 原文地址:(转载)java中的Class类与Class对象作者:albert1017 本文用作笔记之用,引用的网上资料: http://www.blogjava.net/formatmys ...
- 转:Linux基本命令大全
Linux基本命令大全 新手刚刚接触Linux的时候可能处处感到不便,不过没有关系,接触新的事物都有这样的一个过程,在你用过Linux一段时间后,你就会逐渐了解Linux其实和Windows一样容 ...
- Ubuntu VPN PPTP 连接要选上这个啊
选上MPPE点到点加密..
- 一个简单的基于HTTP协议的屏幕共享应用
HTTP协议可以能是应用层协议里使用最广泛并且用途最多样的一个了.我们一般使用HTTP协议来浏览网页,但是HTTP协议还用来做很多其它用途.对开发人员来讲很常见的一种就是用HTTP协议作为各种版本控制 ...
- hdu_5179_beautiful number(数位DP)
题目连接:http://acm.hdu.edu.cn/showproblem.php?pid=5179 题意:给你一个范围,问你漂亮的数有多少个,漂亮的数的定义为 数位高的比数位低的大,并且 数位高的 ...
- location对象的属性和方法应用(解析URL)
本文将与大家分享下location对象使用属性和方法来解析URL的实例,感兴趣的朋友可以参考下,希望对你有所帮助 location对象提供了很多属性和方法用来解析URL. 复制代码代码如下: &l ...
- 表达式语言--在MVC中应用表达式语言
之前讲解的MVC设计模式中一直有DAO存在,而且所有的对象都保存在VO之中,那么这时如果将一个VO传递到JSP文件中,那么JSP需要导入VO包,如果使用表达式语言的话,导入VO包就没有任何意义了. V ...
- Servlet程序开发--Servlet简介
使用java语言开发的服务器端程序,可以生成动态web页,运行在服务器端,由服务器调用执行,是一种按照servlet标准开发的类. 先有servlet,后有jsp,jsp骨子里依然是servlet. ...
- JAVA事件监听机制学习
//事件监听机制 import java.awt.*; import java.awt.event.*; public class TestEvent { public static void mai ...
- 认识ExtJS(04)--常见Web框架的ExtJS改造
常见Web框架的ExtJS改造 怎样开始改造工作? 改造主要集中在对表现层的修改,底层的数据库访问不需要进行任何的变动.也就是说主要集中早这2个方面:一方面是表现部分即是JSP页面:另一方面是客户端与 ...