jsp安全性问题,当别人知道某个jsp文件的网址后就可以跳过登陆页面直接访问该jsp文件了,这样无法禁止外部无权限用户的访问。本文讨论内容是通过权限验证的用户,才可以访问特定的页面。

JSP 页面验证,涉及到的知识有Session, 网页权限, 用户验证等。

session对象

session对象用来存储有关用户会话的所有信息,一个会话就是浏览器与服务器之间的一次通话,它包含浏览器与服务器之间的多次请求、响应过程。session是JSP内置对象,与浏览器一一对应,允许用户存储和提取会话状态的信息,信息保存在服务器端。session信息获取1) JSPsession.setAttribute("userinfo", USERNAME);// session保存登录信息和用户名2) Java(Servlet)request.getSession().setAttribute("userinfo", USERNAME); // session保存登录信息和用户名其中,request为HttpServletRequest对象,在doPost(HttpServletRequest request, HttpServletResponse response){...}引用session超时设置1) web.xml...302) Javarequest.getSession().setMaxInactiveInterval(30*60);// 设置session失效时间(timeout),单位为秒注:setMaxInactiveInterval() 比 web.xml 优先级高,如果两者同时设置则采用setMaxInactiveInterval()JSP 网页权限JSP 网页权限,有两种配置方式:1) include 文件如: 验证文件logincheck.jsp

if(session.getAttribute("userinfo") == null) {

%>

");

out.flush();

out.close();

//          request.setAttribute("loginError", "您还没有登录,请登录...");

//          request.getRequestDispatcher("userlogin.html").forward(request, response);

} else {

arg2.doFilter(request, response);

}

}

@Override

public void destroy() {

}

}用户登录验证用户登录验证,有两种方式:JSP网页前端和Java(Serlvet)后台1) JSP网页前端验证(login.jsp)

String USERNAME = "admin";

String USERPWD = "123456";

request.setCharacterEncoding("utf8");

String userName = request.getParameter("username").trim();

String userPwd = request.getParameter("userpwd").trim();

if(userName == null || userPwd == null){

response.sendRedirect("userlogin.html");

return;

}

if(userName.equals(USERNAME) && userPwd.equals(USERPWD)) {

session.setMaxInactiveInterval(30*60);          // 设置session失效时间(timeout),单位为秒

session.setAttribute("userinfo", USERNAME);     // 用户名和密码正确,保存登录信息

response.sendRedirect("page111.jsp");

} else {

response.sendRedirect("userlogin.html");        // 用户名和密码错误,跳转到登录界面

}

%>2) Java(Serlvet)后台验证(Login.java)public class Login extends HttpServlet {

private static final long serialVersionUID = 1L;

private final static String USERNAME = "admin";

private final static String USERPWD = "123456";

@Override

protected void doGet(HttpServletRequest request, HttpServletResponse response) {

}

@Override

protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {

request.setCharacterEncoding("utf-8");

String userName = request.getParameter("username").trim();

String userPwd = request.getParameter("userpwd").trim();

if(userName == null || userPwd == null) {

response.sendRedirect("userlogin.html");

}

if(userName.equals(USERNAME) && userPwd.equals(USERPWD)) {

request.getSession().setMaxInactiveInterval(30*60);     // 设置session失效时间(timeout),单位为秒

request.getSession().setAttribute("userinfo", USERNAME);        // 用户名和密码正确,保存登录信息(获得session与jsp网页稍有不同)

response.sendRedirect("page111.jsp");

} else {

response.sendRedirect("userlogin.html");            // 用户名和密码错误,跳转到登录界面

}

}

}其中,需要在web.xml配置Servlet映射关系:Login

Login

Login

com.homer.Login

Login

/login注: Login.java映射成对样网页为/login,login可以在网页(html和jsp)form中指定,如 action="login"

用户登录界面用户登录界面,是用户在访问整个网站之前需要访问的,因此最好制作成静态页面HTML,本例如:userlogin.html

UserName :

UserPwd :注: 此时 action="login" 默认对应Java(Servlet)中对应的 Login.java进行验证解析

userlogin.html针对上述两种 用户登录验证 方式,分别提供了两种POST方式:1) 针对JSP方式2) 针对Java(Servlet)方式本示例代码说明本示例主要代码结构图如下:1) head.jsp 和 foot.jsp统一控制jsp页面的上,下部内容,类似ASP.NET的模板2) index.jsp网站默认的登录页面,本示例主要用作跳转到登录页面userlogin.html:3)userlogin.html静态登录页面,见上面用户登录界面的所示4) login.jsp 和 Login.javalogin.jsp 网页验证用户登录信息(用户名和密码),见上面的用户登录验证方式1Login.java 后台验证用户登录信息(用户名和密码),见上面的用户登录验证方式25) logincheck.jsp 和 LoginFilter.javalogincheck.jsp 网页验证用户是否已登录,见上面的JSP 网页权限方式1LoginFilter.java后台验证用户是否已登录,见上面的JSP 网页权限方式26) page111.jsp, page222.jsp, page333.jsp(1) page111.jsp采用logincheck.jsp 网页权限验证,其代码内容为:I am page111.jsp

(2) page222.jsp采用logincheck.jsp 网页权限验证,其代码内容为:I am page222.jsp

注:采用filter过滤方式,在web.xml配置文件中设置了哪些jsp网页需要过滤,见上面JSP 网页权限---》2) filter 过滤(3) page333.jsp采用logincheck.jsp 网页权限验证,其代码内容为:I am page333.jsp

注: 没有任何验证,用户可以直接输入网址进行访问7) logout.jsp用户退出时,注销session中的登录信息本示例运行界面:1) 登录界面userlogin.html2) JSP 页面验证logincheck.jsp(或LoginFilter.java)页面访问前进行登录验证3) 验证通过访问JSP页面login.jsp(或Login.java)用户登录后才可以正常访问JSP页面

java验证网址正常打开_JSP 页面访问用户验证相关推荐

  1. JSP 页面访问用户验证

    jsp安全性问题,当别人知道某个jsp文件的网址后就可以跳过登陆页面直接访问该jsp文件了,这样无法禁止外部无权限用户的访问.本文讨论内容是通过权限验证的用户,才可以访问特定的页面. JSP 页面验证 ...

  2. 哇塞,打开一个页面访问了这么多次数据库??

    用SQL Server 事件探查器看了一下,哇塞,每打开一个页面都select了n多次数据库,而且很多都是类似的代码?为啥? (1).二级嵌套绑定数据源 (2).二级联动 (3).--多着呢! 解决方 ...

  3. Http访问用户验证

    今天终于学习到了服务这块,大致了解了一下Http服务,看见了一个好玩的东西,所以就记下来啦,o(∩_∩)o 对于http服务,有一个用户验证的功能,具体步骤如下: 1.首先把要创建密码文件,把用户加入 ...

  4. php验证密码后跳转_php-laravel框架用户验证(Auth)模块解析(四)忘记密码

    一.忘记密码模块路由 二.控制器解析 跟注册.登录的控制器一样,大部分的逻辑使用trait引入. ForgotPasswordController:负责忘记密码页面,以及邮件发送 四.扩展开发:自定义 ...

  5. linux ftp 怎么验证,Linux编译安装vsftpd服务器(本地用户验证方式)

    linux vsftpd编译安装和配置允许本地用户登录ftp 1.下载vsftpd源码 wget https://security.appspot.com/downloads/vsftpd-2.3.4 ...

  6. java jsp中控件绑定_jsp页面常用控件

    1.点击按钮返回 上一页: 2.点击按钮跳转到另一个jsp页面: 3.复选框 : 保存登录名 4.背景图片超链接: 评价 5.在js中获取html中表单元素的value值: function show ...

  7. java jsp导出pdf文件_JSP页面导出PDF格式文件

    JSP页面导出PDF格式文件基本在前端页面可以全部完成 添加下载链接的点击事件 var downPdf = document.getElementById("downLoad"); ...

  8. 如何在vue-router的beforeEach钩子里做页面访问权限验证

    一般前端做的话放到sessionStorage里面,通过vuex去管理,直接上代码吧(我项目里'/'是登录页,'/Table'是登录后的首页) // main.js router.beforeEach ...

  9. java 邮件客户端 smtp_带用户验证的SMTP邮件客户端java实现

    一.程序的实现 SMTP (Simple Mail Transfer Protocol) :电子邮件从客户机传输到服务器或从某一个服务器传输到另一个服务器使用的传输协议.SMTP是请求/响应协议,命令 ...

最新文章

  1. entity.Database.SqlQuery() 和entity.Database.SqlCommand()
  2. 间接通过new 来申请一个二维的堆内存数组
  3. linux dd文件系统,原来dd命令也可以模拟块设备(文件系统)读写
  4. cookies,sessionStorage 和 localStorage 的区别?
  5. 计算机课程建设 指导思想,计算机基础精品课程建设实施方案(规划).doc
  6. 你应该知道的 HBase 基础,都在这儿了
  7. 山西省行政村边界数据/乡镇街道边界数据/行政区划边界分布
  8. office 打开wps乱_wps打开word的乱码咋办?
  9. google 能翻译104个语言 youtube 仅仅不支持其中的15个语言 分别是这些
  10. python web py入门(6)-webpy在模板里使用code代码段错误的问题
  11. word文件文档文本恢复转换器
  12. 如何解决 Android浏览器查看背景图片模糊的问题?
  13. 触控板的使用技巧~赞,亲测好用,放弃鼠标,拒绝鼠标手、腱鞘炎!!
  14. I2C器件的从设备地址的设置(以AT24C02为例)
  15. 解读《欧洲新工业战略》:三个愿景与三大策略
  16. CST微波工作室边界条件和背景材料
  17. kali Linux 介绍
  18. 深入解析AAVE智能合约:计算和利率
  19. 包 权限修饰符 final 常量 枚举 抽象类 接口 多态 内部类 常用API 正则表达式 Lambda
  20. 今天是个好日子 -20141125

热门文章

  1. (微服务)分布式事务-最大努力交付 消息最终一致性方案
  2. Rotated Image
  3. ROS moveit 机械臂避障运动规划
  4. 微信小程序生态13-微信公众号自定义菜单、个性化菜单配置
  5. 【资源】一个C/C++开发工程师的学习路线(已经无路可退,唯有逆风飞翔)【内附资源页】
  6. Java如何监控数据库表的变化,java监听数据库表变化
  7. 数据库学习之MySQL (三)——数据库小试牛刀 + 利用对象思维理解表行列
  8. 喜报!星舆科技再次斩获智能网联汽车行业大奖
  9. 人防+技防!星舆科技应对地灾这样防
  10. 数字孪生三维可视化平台是什么?