防止用户直接输入地址访问jsp文件
2012-08-09 16:53
197 查看
实例说明:
网站可以由多个动态页面组成,并且每一个动态页面直接都存在着联系。为了保证网站内信息资源的安全,程序员应禁止浏览者不通过登录页面而强行进入其他页面进行浏览。
设计过程:
(1)、创建DoyouLogon类来验证并存储用户信息。关键代码如下:
package cn.com;
publicclass DoyouLogon {
private String
username =
"";
private String
userpassword =
"";
public String getUsername() {
returnusername;
}
publicvoid setUsername(String username) {
this.username = username;
}
public String getUserpassword() {
returnuserpassword;
}
publicvoid setUserpassword(String userpassword) {
this.userpassword = userpassword;
}
public DoyouLogon(){}
public String checkuser(){
String backstr =
"";
if(this.username.equals("")){
backstr +=
"<li>请输入<b>用户名!</b></li></br>";
}
if(this.userpassword.equals("")){
backstr +=
"<li>请输入<b>密 码!</b></li>";
}
return backstr;
}
}
(2)、创建登录的首页index.jsp。关键代码如下:
<%@
page language="java"
import="java.util.*"
pageEncoding="UTF-8"%>
<!DOCTYPE
HTML PUBLIC
"-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>登录页面</title>
</head>
<%
session.invalidate();
%>
<body>
<form
action="dologon.jsp">
<table>
<tr bgcolor="lightgrey">
<td align="center">请先登录</td>
</tr>
<tr height="50">
<td align="center">
用户名:<input
type="text"
name="username"
size="30"><br/>
密 码:<input
type="password"
name="userpassword"
size="30"
redisplay="false">
</td>
</tr>
<tr bgcolor="lightgrey">
<td align="center">
<input type="submit"
name="logon"
value="登录">
<input type="reset"
name="clear"
value="重置">
</td>
</tr>
</table>
</form>
</body>
</html>
(3)、创建接受Form表单的页面dologon.jsp 。在该页面中对用户输入的信息进行判断,看其是否为空,如果为空则跳转到tishi.jsp页面显示提示信息,否则进入welcome.jsp欢迎页面。其关键代码如下:
<%@
page language="java"
import="java.util.*"
pageEncoding="UTF-8"%>
<jsp:useBean
id="mylogon"
class="cn.com.DoyouLogon"
scope="session"
/>
<!DOCTYPE
HTML PUBLIC
"-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>dologon.jsp</title>
</head>
<body>
<%
String username = request.getParameter("username");
String userpassword = request.getParameter("userpassword");
mylogon.setUsername(username);
mylogon.setUserpassword(userpassword);
String mess = mylogon.checkuser();//获取验证结果信息
if("".equals(username) ||
"".equals(userpassword)){//如果用户输入的登录信息为空
session.setAttribute("logonuser","");
session.setAttribute("error",mess);
response.sendRedirect("tishi.jsp");//转到提示信息页面
}else{
session.setAttribute("logonuser",mylogon);//将用户名存入回话对象
response.sendRedirect("welcome.jsp");//转到欢迎页面
}
%>
</body>
</html>
(4)、创建一个提示页面tishi.jsp,用来显示提示信息。在该页面中首先判断Session中是否存储了登录用户的信息,如果不存在则提示登录。其关键代码如下:
<%@
page language="java"
import="java.util.*"
pageEncoding="UTF-8"%>
<!DOCTYPE
HTML PUBLIC
"-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>tishi.jsp</title>
</head>
<body>
<%
String message =
"";
if(session.getAttribute("logonuser") ==
null){
//如果用户没有登录
message =
"请先<a href='index.jsp'>[登录]</a>";
}else{
//如果用户登录失败
message = (String)session.getAttribute("error");
}
%>
<table>
<tr bgcolor="lightgrey">
<td align="center">友情提示!</td>
</tr>
<tr height="50">
<td align="center"><%=message
%></td>
</tr>
</table>
</body>
</html>
(5)、创建登录成的欢迎页面welcome.jsp用于显示欢迎信息。关键代码如下:
<%@
page language="java"
import="java.util.*"
pageEncoding="UTF-8"%>
<jsp:useBean
id="mylogon"
class="cn.com.DoyouLogon"
scope="session"></jsp:useBean>
<!DOCTYPE
HTML PUBLIC
"-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>welcome.jsp</title>
</head>
<body>
<%
String message =
"";
if(session.getAttribute("logonuser") ==
null){
response.sendRedirect("tishi.jsp");
}else{
message="您好!<b>"+mylogon.getUsername()+"</b>[女士/先生]!欢迎登录!";
}
%>
<table>
<tr bgcolor="lightgrey"
height="30">
<td align="center">友情提示!</td>
</tr>
<tr height="50">
<td align="center"><%=message
%></td>
</tr>
</table>
</body>
</html>
秘笈心法:
Session作用于同一个浏览器之中,它共享同一个浏览器中的各个页面的数据。无论当前浏览器是否在多个页面间进行了跳转操作,整个用户会话将一直存在下去,直到关闭浏览器。
网站可以由多个动态页面组成,并且每一个动态页面直接都存在着联系。为了保证网站内信息资源的安全,程序员应禁止浏览者不通过登录页面而强行进入其他页面进行浏览。
设计过程:
(1)、创建DoyouLogon类来验证并存储用户信息。关键代码如下:
package cn.com;
publicclass DoyouLogon {
private String
username =
"";
private String
userpassword =
"";
public String getUsername() {
returnusername;
}
publicvoid setUsername(String username) {
this.username = username;
}
public String getUserpassword() {
returnuserpassword;
}
publicvoid setUserpassword(String userpassword) {
this.userpassword = userpassword;
}
public DoyouLogon(){}
public String checkuser(){
String backstr =
"";
if(this.username.equals("")){
backstr +=
"<li>请输入<b>用户名!</b></li></br>";
}
if(this.userpassword.equals("")){
backstr +=
"<li>请输入<b>密 码!</b></li>";
}
return backstr;
}
}
(2)、创建登录的首页index.jsp。关键代码如下:
<%@
page language="java"
import="java.util.*"
pageEncoding="UTF-8"%>
<!DOCTYPE
HTML PUBLIC
"-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>登录页面</title>
</head>
<%
session.invalidate();
%>
<body>
<form
action="dologon.jsp">
<table>
<tr bgcolor="lightgrey">
<td align="center">请先登录</td>
</tr>
<tr height="50">
<td align="center">
用户名:<input
type="text"
name="username"
size="30"><br/>
密 码:<input
type="password"
name="userpassword"
size="30"
redisplay="false">
</td>
</tr>
<tr bgcolor="lightgrey">
<td align="center">
<input type="submit"
name="logon"
value="登录">
<input type="reset"
name="clear"
value="重置">
</td>
</tr>
</table>
</form>
</body>
</html>
(3)、创建接受Form表单的页面dologon.jsp 。在该页面中对用户输入的信息进行判断,看其是否为空,如果为空则跳转到tishi.jsp页面显示提示信息,否则进入welcome.jsp欢迎页面。其关键代码如下:
<%@
page language="java"
import="java.util.*"
pageEncoding="UTF-8"%>
<jsp:useBean
id="mylogon"
class="cn.com.DoyouLogon"
scope="session"
/>
<!DOCTYPE
HTML PUBLIC
"-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>dologon.jsp</title>
</head>
<body>
<%
String username = request.getParameter("username");
String userpassword = request.getParameter("userpassword");
mylogon.setUsername(username);
mylogon.setUserpassword(userpassword);
String mess = mylogon.checkuser();//获取验证结果信息
if("".equals(username) ||
"".equals(userpassword)){//如果用户输入的登录信息为空
session.setAttribute("logonuser","");
session.setAttribute("error",mess);
response.sendRedirect("tishi.jsp");//转到提示信息页面
}else{
session.setAttribute("logonuser",mylogon);//将用户名存入回话对象
response.sendRedirect("welcome.jsp");//转到欢迎页面
}
%>
</body>
</html>
(4)、创建一个提示页面tishi.jsp,用来显示提示信息。在该页面中首先判断Session中是否存储了登录用户的信息,如果不存在则提示登录。其关键代码如下:
<%@
page language="java"
import="java.util.*"
pageEncoding="UTF-8"%>
<!DOCTYPE
HTML PUBLIC
"-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>tishi.jsp</title>
</head>
<body>
<%
String message =
"";
if(session.getAttribute("logonuser") ==
null){
//如果用户没有登录
message =
"请先<a href='index.jsp'>[登录]</a>";
}else{
//如果用户登录失败
message = (String)session.getAttribute("error");
}
%>
<table>
<tr bgcolor="lightgrey">
<td align="center">友情提示!</td>
</tr>
<tr height="50">
<td align="center"><%=message
%></td>
</tr>
</table>
</body>
</html>
(5)、创建登录成的欢迎页面welcome.jsp用于显示欢迎信息。关键代码如下:
<%@
page language="java"
import="java.util.*"
pageEncoding="UTF-8"%>
<jsp:useBean
id="mylogon"
class="cn.com.DoyouLogon"
scope="session"></jsp:useBean>
<!DOCTYPE
HTML PUBLIC
"-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>welcome.jsp</title>
</head>
<body>
<%
String message =
"";
if(session.getAttribute("logonuser") ==
null){
response.sendRedirect("tishi.jsp");
}else{
message="您好!<b>"+mylogon.getUsername()+"</b>[女士/先生]!欢迎登录!";
}
%>
<table>
<tr bgcolor="lightgrey"
height="30">
<td align="center">友情提示!</td>
</tr>
<tr height="50">
<td align="center"><%=message
%></td>
</tr>
</table>
</body>
</html>
秘笈心法:
Session作用于同一个浏览器之中,它共享同一个浏览器中的各个页面的数据。无论当前浏览器是否在多个页面间进行了跳转操作,整个用户会话将一直存在下去,直到关闭浏览器。
相关文章推荐
- 防止用户直接输入地址下载资源文件(java实现)
- php禁止直接从浏览器输入地址访问.php文件的方法
- jsp页面都放在web-inf下面说是要防止用户直接访问jsp页面,为么不能直接访问jsp
- HttpServletRequest的getServletPath、getServletURI、getServletURL等区别 &&如何防止用户通过直接输入URL访问网页
- php禁止直接从浏览器输入地址访问.php文件的方法
- File 上传控件避免用户直接输入文件地址
- 防止用户直接访问jsp页面的几种办法
- 防止apache下面直接输入目录访问文件
- 防止用户不登陆直接输入网址访问页面
- JSP如何防止用户直接输入url进页面
- 防止用户直接访问有关jsp页面的几种办法
- 防止用户不登陆直接输入网址访问页面收藏
- 用户的访问权限过滤器,防止用户直接输入URL直接访问资源。
- jsp部署在tomcat下,地址不用输入项目名直接访问项目
- 防止不法地址,直接输入地址访问网站
- php禁止直接从浏览器输入地址访问.php文件的方法
- 用户的访问权限过滤器,防止用户直接输入URL直接访问资源。
- 用户的访问权限过滤器,防止用户直接输入URL直接访问资源。
- 防止用户通过地址栏直接访问主页
- 退出后点击浏览器后退不能回到成功页面;直接进入页面和跳转进入页面样式不同;防止直接输入页面地址或servlet;当servlet跳servlet时,进行其他操作后后退出现错误!