JSP内置对象例子—jsp模拟网上测试

我们通过一个应用内置对象的例子来将之前讲过的进行一个深入理解

关于内置对象的知识可以看这里

https://mp.csdn.net/postedit/84037358

主要功能就是通过输入内置的账号名和密码判断是否可以登陆,如果可以则进行做题并且提交评分,还可以查看分数

先是一个index.jsp页面

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
<jsp:include page="header.jsp"></jsp:include>

<center>
<form action="check.jsp" method="get">
用户名<input type="text" name="username" />
<br>
密码<input type="password" name="psd" />
<br><br>
<button type="submit">登录</button>
<button type="reset">重填</button>
</form>
</center>

<jsp:include page="footer.jsp"></jsp:include>
</body>
</html>

header.jsp

<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
<center>
	<h2>在线测试系统</h2>
	<p>
		<a href="index.jsp">登录</a>
		|
		<a href="test.jsp">在线测试</a>
		|
		<a href="scorelist.jsp">成绩榜</a>
	</p>
</center>

footer.jsp

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>    
<%!int pageCount = 0;%>
<% pageCount++; %>
<center>
    <p>Copyright ? 2018 | 访问次数:<%=pageCount%></p>
</center>

check.jsp

<%@ page language="java" import="java.util.*" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
<%!
Map<String,String> user_list=new HashMap<String,String>();
%>

<%
user_list.put("ss", "888");
user_list.put("qq", "222");
user_list.put("yy", "666");
%>

<%!
boolean check(String username,String psd){
	if(user_list.containsKey(username))
		if(user_list.get(username).equals(psd)){
			return true;
		}
	return false;
}
%>

<%
String username=request.getParameter("username");
String psd=request.getParameter("psd");

if( check(username,psd)){
	session.setAttribute("username", username);
	out.print("欢迎"+username);
	out.print("&nbsp;&nbsp;&nbsp;<a href='test.jsp'>开始测试</a>");
}
else{
	out.print("登录失败,3秒之后重新登录");
	response.setHeader("refresh", "3;url='index.jsp'");
}


%>

</body>
</html>

test.jsp

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
<%
String username=(String)session.getAttribute("username");
if(username==null){ 
	out.print("你还没有登录,3秒钟之后重新登录");
	response.setHeader("refresh", "3;url='index.jsp'");
}
else{  //登录之后才能做题
%>
考生:<%=username %>
<h3>在线测试题</h3>
<form action="submit.jsp" onsubmit="return confirm('确定提交吗?')">
		第1题:湖北省会是
		<input type="text" name="q1" />
		<br><br>
		第2题:宋朝开国皇帝是
		<br>
		<input type="radio" value="赵匡胤" name="q2">
		赵匡胤
		<input type="radio" value="朱元璋" name="q2">
		朱元璋
		<input type="radio" value="李渊" name="q2">
		李渊
		<br><br>
		第3题:四大名著有
		<br>
		<input type="checkbox" value="红楼梦" name="q3">
		红楼梦
		<input type="checkbox" value="水浒传" name="q3">
		水浒传
		<input type="checkbox" value="Java从入门到放弃" name="q3">
		Java从入门到放弃
		<br><br>
		<button type="submit">提交</button>
</form>
<%}%>


</body>
</html>

submit.jsp

<%@ page language="java" import="java.util.*" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
<%
int score=0;
String q1=request.getParameter("q1");
String q2=request.getParameter("q2");
String[] q3=request.getParameterValues("q3");

if(q1!=null&&q1.equals("武汉")){	score+=10;	}
if(q2!=null&&q2.equals("赵匡胤")){	score+=10;	}
if(q3!=null&&q3.length==2&&q3[0].equals("红楼梦")&&q3[1].equals("水浒传")){
	score+=10;	}
//out.print("<h2>你的成绩=" + score + "</h2>");
response.sendRedirect("logout.jsp");
%>
<%!
Map<String, Integer> score_list = new HashMap<String, Integer>(); //存放用户名+成绩 
%>
<% score_list.put((String) session.getAttribute("username"), score);
application.setAttribute("score_list", score_list);%>
</body>
</html>

logout.jsp

<%@ page language="java" import="java.util.*" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
<%  
	session.invalidate() ;    //注销 session
	response.sendRedirect("index.jsp");   
%>


</body>
</html>

scorelist.jsp

<%@ page language="java" import="java.util.*" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
<h2>成绩榜</h2>
<%!
//降序排序
public <K, V extends Comparable<? super V>> Map<K, V> sortByValueDescending(Map<K, V> map)
    {
        List<Map.Entry<K, V>> list = new LinkedList<Map.Entry<K, V>>(map.entrySet());
        Collections.sort(list, new Comparator<Map.Entry<K, V>>()
        {
            
            public int compare(Map.Entry<K, V> o1, Map.Entry<K, V> o2)
            {
                int compare = (o1.getValue()).compareTo(o2.getValue());
                return -compare;
            }
        });

        Map<K, V> result = new LinkedHashMap<K, V>();
        for (Map.Entry<K, V> entry : list) {
            result.put(entry.getKey(), entry.getValue());
        }
        return result;
    }
%>

<%
if(application.getAttribute("score_list")==null){
	out.print("<h3>没有成绩</h3>");
}
else{  //遍历显示所有成绩(Map遍历)
	
	Map<String, Integer> score_list= (Map<String, Integer>)application.getAttribute("score_list");
	Set s=score_list.keySet();
	Iterator it=s.iterator();
	while(it.hasNext()){
		String username=(String)it.next();
		int score=score_list.get(username);
		out.print("<h3>"+username+":"+score+"</h3>");
	}	
}
%>

</body>
</html>

这个例子用的只是单纯的jsp页面实现,所以用户登陆在check页面写死了三个用户的信息。

  • 2
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值