web jsp filter 权限控制 运行测试出现500问题 怎么解决

问题描述

web jsp filter 权限控制 运行测试出现500问题 怎么解决

工程结构

index.jsp为登陆页面,UserServlet.java为针对登陆的servlet,登陆成功或失败都会跳转到show.jsp,但是有Userfilter.java的过滤。一旦登陆失败会让页面转到error.jsp。

正常是流程:进入index.jsp输入账号密码,登陆成功后进入show.jsp(测试过没问题)
错误的用例:通过控制url绕过index.jsp直接进入show.jsp(出现500错误,应该要进入error.jsp的)

如图

XML配置文件

index.jsp

用户登陆
用户名:

密码:

UserServlet.java
public class UserServlet extends HttpServlet
{

public void doGet(HttpServletRequest req, HttpServletResponse resp)throws ServletException,IOException
{
     String name=req.getParameter("username");
     String password=req.getParameter("password");
     UserInfo info= new UserInfo();

         if(password.equals("123456"))
         {
             info.setName(name);
             info.setPassword(password);
             req.getSession().setAttribute("name", name);
             req.getSession().setAttribute("userinfo", info);
             System.out.println("登陆成功");
             RequestDispatcher rd=req.getRequestDispatcher("/hehe/show.jsp");
             rd.forward(req, resp);
         }
         else
         {
             System.out.println("登录失败");
             RequestDispatcher rd=req.getRequestDispatcher("/hehe/show.jsp");
             rd.forward(req, resp);
         }
}
public void doPost(HttpServletRequest request, HttpServletResponse response)throws ServletException,IOException
{
        doGet(request,response);
}

}

UserFilter.java
public class UserFilter implements Filter{
//销毁方法
public void destroy() {

 }
 //完成过滤操作
 public void doFilter(ServletRequest request, ServletResponse response,FilterChain filter) throws IOException, ServletException
 {
  UserInfo info=(UserInfo)((HttpServletRequest) request).getSession().getAttribute("userinfo");

  String name=((HttpServletRequest) request).getSession().getAttribute("name").toString();
  System.out.println("filter 2:"+name);

  if(info!=null)
  //if(name!=null)
  {
   filter.doFilter(request, response);
  }
  else
  {
   response.setContentType("text/html;charset=utf-8");
   ((HttpServletResponse) response).sendRedirect("../error.jsp");
  }

 }
 //初始化
 public void init(FilterConfig arg0) throws ServletException {

 }

}

解决方案

直接访问show.jsp的话 session为空啊,当然不行,你还要判断session是否为空,然后再处理跳转,可以写在过滤器里面, 也可以写在show.jsp里面

解决方案二:

java web中配置Filter解决jsp中文乱码问题

解决方案三:

路径要写对,你试试../hehe/show.jsp呢

时间: 2024-09-30 01:10:17

web jsp filter 权限控制 运行测试出现500问题 怎么解决的相关文章

servlet-web JSP filter 控制权限配置后,出现404错误

问题描述 web JSP filter 控制权限配置后,出现404错误 index.jsp登陆页面 UserServlet.java是针对登陆的一个servletUserFilter.java是控制权限的类show.jsp是登陆成功后进入的页面error.jsp是当用户绕过index.jsp登陆直接通过控制url进入show.jsp时会跳出的页面. 文件结构 XML配置 index.jsp如图 UserServlet.javapublic class UserServlet extends Ht

基于.net mvc的校友录五 web.config对的配置以及filter实现的权限控制

web.config配置文件 此文件是整个系统的配置中心,它告诉iis服务器本网站需要哪些运行时环境,需要哪些环境,将要进行哪些操作,开发人员也会将一个常量性的数据放在此配置中,以备系统全局调用.此文件内容丰富,对于一些普适性的项目,不作说明,只针对本系统的配置作相应说明. web.config配置文件 web.config是xml格式的文件,它是一种结构性文档,可以通过结点对数据进行遍历.第一行<?xml version="1.0" encoding="utf-8&q

基于MVC4+EasyUI的Web开发框架形成之旅--权限控制

我在上一篇随笔<基于MVC4+EasyUI的Web开发框架形成之旅--框架总体界面介绍>中大概介绍了基于MVC的Web开发框架的权限控制总体思路.其中的权限控制就是分为"用户登录身份验证"."控制器方法权限控制"."界面元素权限控制"三种控制方式,可以为Web开发框架本身提供了很好用户访问控制和权限控制,使得用户界面呈现菜单.Web界面的按钮和内容.Action的提交控制,均能在总体权限功能分配和控制之下. 本篇文章主要细化这三个方面

Liferay中在页面上进行权限控制

在Liferay中,如果我们想要在页面上进行权限控制,比如只有指定权限的用户能看到一些内容,那么我们可以用Liferay预定义的user对象来获取这个对象所拥有的权限,然后再控制页面的显示. 为了在liferay页面上使用user对象,我们必须加入标记库: <liferay-theme:defineObjects/> 然后我们可以在页面上,直接使用user对象,来控制权限,比如我们可以将当前用户是否为管理员用户的存入到一个布尔变量中,如下: <!-- charles:determine

ASP.NET对HTML页面元素进行权限控制(一)

  界面每个元素的权限也是需要控制的.比如一个查询用户的界面里面有查询用户按钮,添加用户按钮,删除用户按钮,不同的角色我们得分配不同的权限 一个HTML页面有很多的元素比如 , 等.这些元素构成了HTML页面.在Web开发中权限控制是每个系统都要用到了.界面每个元素的权限也是需要控制的.比如一个查询用户的界面里面有查询用户按钮,添加用户按钮,删除用户按钮,不同的角色我们得分配不同的权限,比如一般用户只有查询用户按钮的权限;管理员有添加用户按钮,查询用户按钮的权限;超级管理员查询用户按钮,添加用户

ASP.NET对HTML页面元素进行权限控制(一)_实用技巧

一个HTML页面有很多的元素比如<DIV>,<P>等.这些元素构成了HTML页面.在Web开发中权限控制是每个系统都要用到了.界面每个元素的权限也是需要控制的.比如一个查询用户的界面里面有查询用户按钮,添加用户按钮,删除用户按钮,不同的角色我们得分配不同的权限,比如一般用户只有查询用户按钮的权限:管理员有添加用户按钮,查询用户按钮的权限:超级管理员查询用户按钮,添加用户按钮,删除用户按钮的权限.如何让这三种用户在登录以后得到三种不同的界面形式呢?这时候就需要用到HTML元素进行权限

java web开发的时候,单点登录和权限控制到底是如何实现的?

问题描述 3个疑问,除了用filtercookie有什么其它实现?google的一下可以用spring3的springsecurity单点登录有耶鲁大学的开源项目cas但是都没有什么好的,容易懂的例子可以学习1,未登录时不能登录比如访问main.jsp时提示登录跳回登录页面2,登录以后再次登录同样的用户被拒绝3,登录后能直接访问main.jsp求实例谢谢 解决方案 解决方案二:先顶啊解决方案三:引用楼主jfqxll的回复: 2,登录以后再次登录同样的用户被拒绝 这个有问题,如果用户user先登录

AOP下的权限控制实现

OOP应用开发面临的问题 面向对象技术很好地解决了软件系统中角色划分的问题.借助于面向对象的分析.设计和实现技术,开发者可以将问题领域的"名词"转换成软件系统中的对象,从而很自然地完成从问题到软件的转换. 但是,问题领域的某些需求却偏偏不是用这样的"名词"来描述的.比如遇到这样的问题:需要对系统中的某些方法进行权限检验,这种需要权限检验的方法散布在40多个类中.面对这种需求,应该怎么办呢?最直接的办法就是:创建一个起类(或接口),将权限检验的功能放在其中,并让所有需

权限控制要怎么做呢。。

问题描述 我现在只是一个小的BBS项目,怎么自己写代码来控制权限呢(可以通过springsecurity来控制权限,不过现在不想去搞那个,那个打算以后去研究),想通过资源,角色,用户他们来管理,它们之间的关系我懂,只是资源这部份怎么写呢?最好能贴出点代码 解决方案 解决方案二:详细的一大堆.我给你比较流行的表结构巴.解决方案三:CREATETABLE`systemprivilege`(`model`varchar(255)NOTNULL,`privilegeValue`varchar(255)N