java web项目启动进入首页的配置方式(包含过滤跳转首页实现)
本文为博主原创,未经允许不得转载:
项目启动成功,进入首页的方式,我们往往在web.xml 中通过以下的方式默认进入跳转首页,
<welcome-file-list>
<welcome-file>index.jsp</welcome-file>
</welcome-file-list>
在项目启动成功之后,在浏览器输入:http://localhost:端口号/项目名称,回车之后就可以进入index.jsp页面。
另外一种方法通过后代代码实现跳转首页的方式是在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>Insert title here</title>
</head>
<body>
<!--通过页面重定向进行,跳转到指定的页面-->
<%
response.sendRedirect(request.getContextPath()+"/jsp/index.jsp");
%>
<!--两种方式只能选择一种--> <!--通过页面重定向进行java后台代码处理,根据后代处理进行跳转 -->
<%
response.sendRedirect(request.getContextPath()+"/login");
%>
</body> </html>
第三种方法是在这边进行特殊批注的,在项目中,也多用这种方式进行实现,即通过过滤器方式进入首页的方式:
其处理的逻辑为获取URL,并对URL进行判断,判断URL携带的参数,如果URL携带参数正确,其可以进行正常的处理和响应,
当没有携带对应的参数时,则进入首页。
将代码展示如下,启动默认跳转的为登录页:
package com.test.filter; import java.io.IOException;
import java.io.PrintWriter;
import java.util.ArrayList;
import java.util.List; 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.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse; import org.apache.commons.lang3.StringUtils; import com.test.modules.mobile.UserInfo;
import com.test.utils.SystemConstant; public class SystemFilter implements Filter { private static final List<String> STRINGS = new ArrayList<String>();
//此处可以定义加载时要过滤的资源类型
static {
STRINGS.add("jsp");
STRINGS.add("js");
STRINGS.add("css");
STRINGS.add("images");
STRINGS.add("bmp");
STRINGS.add("gif");
STRINGS.add("jpg");
STRINGS.add("jpeg");
STRINGS.add("png");
} @Override
public void destroy() { } @Override
public void doFilter(ServletRequest servletRequest,
ServletResponse servletResponse,
FilterChain chain)
throws IOException, ServletException {
HttpServletRequest request = (HttpServletRequest) servletRequest;
HttpServletResponse response = (HttpServletResponse) servletResponse;
//通过过滤器实现编码方式的控制
request.setCharacterEncoding(SystemConstant.UTF8_CODE);
response.setCharacterEncoding(SystemConstant.UTF8_CODE);
String url = request.getRequestURI();
String path = request.getContextPath();
UserInfo userInfo = (UserInfo) request.getSession().getAttribute("loginUser"); //此处用来判断浏览器缓存用户数据是否存在
if (!url.contains("login")&& (!isAuth(url) || url.contains(".json"))) {
if (null == userInfo || StringUtils.isBlank(userInfo.getLoginName())) {
String tip = "<html><head><meta http-equiv=\"Content-Type\" content=\"text/html; charset=utf-8\" /><script language='javascript'>window.parent.location.href='"
+ path
+ "/login'</script></head><body></body></html>"; //此处用来后台请求跳转的路径,当请求到此处时,就会进入对应的后台路径中进行请求
PrintWriter outprint = response.getWriter();
outprint.write(tip);
outprint.flush();
return;
} else {
chain.doFilter(request, response);
}
} else {
chain.doFilter(request, response);
}
} @Override
public void init(FilterConfig filterConfig) throws ServletException {} public boolean isAuth(String url) {
for (String string : STRINGS) {
if (url.contains(string)) {
return true;
}
}
return false;
}
}
同时,在web.xml文件中配置过滤器:
<filter>
<filter-name>SystemFilter</filter-name>
<filter-class>com.test.filter.SystemFilter</filter-class>
</filter>
<filter-mapping>
<filter-name>SystemFilter</filter-name>
<url-pattern>*</url-pattern>
</filter-mapping>
第三种方式,其实就是对过滤器的应用及理解,过滤器用的地方很多,在此处记录一下,所谓积少成多。。
加油,哈哈哈
java web项目启动进入首页的配置方式(包含过滤跳转首页实现)的更多相关文章
- maven的java web项目启动找不到Spring ContextLoaderListener的解决办法
用maven搭建的java web项目,上传到git仓库后,当同事clone下来项目,部署到tomcat运行时,就报了如下错误,即启动web项目时,加载web.xml文件,找不到spring的监听器, ...
- java web 项目启动的根目录,以及项目启动后使用的端口具体是哪一个
1.今天启动项目发现一直找不到网页,原来是自己浏览器地址的根目录出现了问题,那么系统中的根目录(也就是项目名)到底是哪个,究竟以哪个为基准? 这里有一地方不能忽视:见图片 在普通的java web项目 ...
- Java Web项目启动执行顺序
一. 1.启动一个WEB项目,WEB容器会先去读取它的配置文件web.xml,读取<context-param>和<listener>两个节点. 2.接着,容器创建一个Serv ...
- java web项目启动加载顺序
转载:https://www.cnblogs.com/writeLessDoMore/p/6935524.html web.xml加载过程(步骤): 1.启动WEB项目的时候,容器(如:T ...
- java web项目启动时自动加载自定义properties文件
首先创建一个类 public class ContextInitListener implements ServletContextListener 使得该类成为一个监听器.用于监听整个容器生命周期的 ...
- 详解Java Web项目启动执行顺序
一. web.xml加载过程(步骤): 启动web项目,容器(如Tomcat.Apache)会去读取它的配置文件web.xml 中的两个节点,context-param和listener. 紧接着,容 ...
- java web项目启动时浏览器路径不用输入项目名称方法
http://blog.csdn.net/qq542045215/article/details/44923851
- java web项目修改favicon.ico图标的方式
1.修改整个项目的tomcat图标 找到tomcat的根目录(tomcat-webapps-ROOT目录),然后将修改的favicon.ico图标覆盖掉本地的图标,然后再重启项目,刷新,清除浏览器缓存 ...
- IntelliJ IDEA + Maven创建Java Web项目
1. Maven简介 相对于传统的项目,Maven 下管理和构建的项目真的非常好用和简单,所以这里也强调下,尽量使用此类工具进行项目构建, 它可以管理项目的整个生命周期. 可以通过其命令做所有相关的工 ...
随机推荐
- Python几种并发实现方案的性能比较
http://blog.csdn.net/permike/article/details/54846831 Python几种并发实现方案的性能比较 2017-02-03 14:33 1541人阅读 评 ...
- 梯度下降算法(Gradient Descent)
近期在搞论文,须要用梯度下降算法求解,所以又一次整理分享在这里. 主要包含梯度介绍.公式求导.学习速率选择.代码实现. 梯度下降的性质: 1.求得的解和选取的初始点有关 2.能够保证找到局部最优解,由 ...
- Py中pyplot之subplot例子【转载】
转自:https://matplotlib.org/api/_as_gen/matplotlib.pyplot.subplot.html 1.有NaN的余弦图subplot import numpy ...
- 如何快速获取ListView的打气筒对象
简单的方式有三种: @Override public View getView(int position, View convertView, ViewGroup parent) { View vie ...
- 渗透msf工具中andorid被控端的实现
msf中andoird端的实现代码一共只有8k 核心代码就是下载者. 下载dex,动态执行dex.
- 通用Dao方法
import java.lang.reflect.Field; import java.sql.Connection; import java.sql.DatabaseMetaData; import ...
- ftp.GetResponse() 无法连接到远程服务器
最近在做一个ftp上传下载以及在服务器上创建文件夹的工具 报 GetResponse() 无法连接到远程服务器 错误 明明 ip , 账户和 密码 用ftp 工具都能连接上 ,可是 代码就不行了,看 ...
- SQLServer 重启服务后,自增1的标识列一次增长了1000(转自博问)
sql2012:我重启了下sql服务,然后自增列Id居然一下子跳了100,怎么回事啊?(之前的数据Id为1,我重启服务后,第二条数据Id就变成1001了),我自增是1,求大神帮忙啊 SQLServer ...
- yii2中关联查询
yii2 ActiveRecord多表关联以及多表关联搜索的实现 一个老生常谈的问题.最近通过群里的反馈,觉得很多人还是没有去理解这个问题.今天把这个问题讲明白了,看看yii2 ActiveRecor ...
- ac1008
这题说的是 给了n个点在圆 上 然后 i连 i+2 从i+2 开始连 i+4 然后 这样一直到某个点 已经被连过为止 如果还有的没有被连过 就从那个点开始 连 按照上面的规则 当 N大于6 的时 ...