Web_代码

1

在HTML页面中建立名为myform的表单,其中有个名为username的文本框,userpass的密码框,再建立一个提交按钮,当点击提交按钮时请编写一个JavaScript函数judge(),判断该文本框、密码框中数据是否符合如下要求:(10分)
(1)由a到z、A到Z的字母和数字组成,不能含有其他字符。
(2)长度6-20位。
(3)返回布尔类型。
如果符合要求则提交到下一页(jsp或Servlet名都行),如果不符合要求则提示修改。 收起全文

<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
</head>
<body>
<form action="" id="myform" name="myform" method="post">
<input type="text" name="username" id="username"><br />
<input type="password" name="userpass" id="userpass">
<button onclick="return judge()">提交</button>
<script type="text/javascript">
function judge() {
var username = myform.username.value;
var userpass = myform.userpass.value;
var temp = /[0-9a-zA-Z]{6,20}/;
if (!temp.test(username)) {
alert("账号错误!");
}
if (!temp.test(userpass)) {
alert("密码错误!");
}
if (temp.test(username) && temp.test(userpass)) {
return true;
} else {
return false;
}
}
</script>
</form>
</body>
</html>

2

根据图示,完成如下要求(一共4个文件):
1.完成登陆页内容的编写,要求输入用户名、密码,提交到Servlet;
2.完成Servlet的编写,接收用户名、密码,并判断:
用户名和密码为:aaa/aaa,设置访问a目录(模块)所有页面的权限,并跳转到导航页;
用户名和密码为:bbb/bbb,设置访问b目录(模块)所有页面的权限,并跳转到导航页;
如果用户名、密码不符,则跳转到登陆页;
3.完成过滤器1和过滤器2的实现,判断当用户访问a目录(模块)或b目录(模块)中文件时是否具有权限,如果有则放过,如果没有则跳转回导航页。

FilterA:
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 java.io.IOException;
@WebFilter("/filterA/*")
public class FilterA implements Filter {
public FilterA() {
}
public void destroy() {
}
public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain)
throws IOException, ServletException {
HttpServletRequest req = (HttpServletRequest) request;
String flag = (String) req.getSession().getAttribute("a");
if (flag == null || !flag.equals("ok")) {
request.setAttribute("error", "无权访问a路径");
request.getRequestDispatcher("/login.jsp").forward(request, response);
} else {
chain.doFilter(request, response);
}
}
public void init(FilterConfig fConfig) throws ServletException {
}
}

FilterB:

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 java.io.IOException;
@WebFilter("/filterB/*")
public class FilterB implements Filter {
public FilterB() {
}
public void destroy() {
}
public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain)
throws IOException, ServletException {
HttpServletRequest req = (HttpServletRequest) request;
String flag = (String) req.getSession().getAttribute("b");
if (flag == null || !flag.equals("ok")) {
request.setAttribute("error", "无权访问b路径");
request.getRequestDispatcher("/login.jsp").forward(request, response);
} else {
chain.doFilter(request, response);
}
}
public void init(FilterConfig fConfig) throws ServletException {
}
}

login:

<%@ contentType="text/html; charset=UTF-8"pageEncoding="UTF-8"%>
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%>
<!DOCTYPE html>
<html>
<head>
<base href="<%=basePath%>">  
</head>
<body>
<div>用户登陆</div>
<form action="MyServlet" method="post">
user:<input type="text" name="name" />
<br />
pass:<input type="password" name="pass" />
<br />
<input type="submit" value="提交" />
</form>
<div>${error}</div>
</body>
</html>

Servlet:

import javax.servlet.ServletConfig;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
@WebServlet("/Servlet")
public class Servlet extends HttpServlet {
private static final long serialVersionUID = 1L;
public Servlet() {
}
protected void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
doPost(request, response);
}
protected void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
request.getSession().invalidate();
String name = request.getParameter("name");
String pass = request.getParameter("pass");
String result = "密码或用户名错误";
String page = "login.jsp";
if (name == null || pass == null) {
request.setAttribute("error", result);
} else if (name.equals("aaa") && pass.equals("aaa")) {
request.setAttribute("name", name);
request.getSession().setAttribute("login", "成功");
request.getSession().setAttribute("a", "成功");
page = "dir.jsp";
} else if (name.equals("bbb") && pass.equals("bbb")) {
request.setAttribute("name", name);
request.getSession().setAttribute("login", "成功");
request.getSession().setAttribute("b", "成功");
page = "dir.jsp";
} else {
request.setAttribute("error", result);
}
request.getRequestDispatcher(page).forward(request, response);
}
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值