GDPU JavaWeb JSP内置对象

验证通过,这是宝藏开箱的开始。每次在登录页面都会见到诸如此类的话,学一下jsp通过内置对象跳转验证页面。

request获取 

request隐含对象的使用(request.jsp),利用request对象获取当前的IP地址,主机名和服务器端口号。

<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<%@ page import="java.net.InetAddress" %>
<html>
<head>
    <title>获取IP地址和端口信息</title>
</head>
<body>
<% String ip=request.getRemoteAddr();
//   String hostname=request.getRemoteHost();
      if(ip != null ) {
              ip=ip.equals("0:0:0:0:0:0:0:1")?"127.0.0.1":ip;//ip转换
               } else {
                  ip = "Unknown";
              }
    String hostname= InetAddress.getLocalHost().getHostName();//获取主机名
  %>
<p>你的IP地址为: <%= ip %></p>
<p>你的主机名为: <%= hostname %></p>
<p>服务器的端口号为: <%= request.getServerPort() %></p>
</body>
</html>

点击跳转页面 

 在JSP页面上显示1-9共9个链接,单击每个链接。在当前页面打印该数字的平方。

<%@ page contentType="text/html;charset=UTF-8" language="java" %>

<html>
<head>
    <title>Number Squares</title>
</head>
<body>

<% for (int i = 1; i <= 9; i++) { %>
<a href="sqe.jsp?num=<%= i %>"><%= i %></a>&nbsp
<% } %>

<%
    String numParam = request.getParameter("num");
    if (numParam != null) {
        int num = Integer.parseInt(numParam);
        int square = num * num;
%>
<span>该数字的平方为:<%= square %></span>
<%
    }
%>

</body>
</html>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
    <title>Number Squares</title>
</head>
<body>

<% for (int i = 1; i <= 9; i++) { %>

<a href="javascript:void(0);" onclick="handleClick(<%= i %>);" > <%= i %></a>&nbsp
<% } %>
<span id="squareans"></span>
<script>
    function handleClick(num) {
        var url = "squ.jsp?num=" + num; // 构建带参数的URL
        window.location.href = url; // 跳转到带参数的URL
    }
    function printSquare(num) {
        var square = num * num;
        document.getElementById("squareans").innerHTML = "该数字的平方为:" + square;
    }
    const urlParams = new URLSearchParams(window.location.search);
    const num = parseInt(urlParams.get('num'));
    printSquare(num);
</script>
</body>
</html>

 

session与respond提交 

//login.jsp 登录页面
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
    <title>Title</title>
</head>
<body>
<%
    int cnt=0;
    Object timesObj = session.getAttribute("times");
    if (timesObj instanceof Integer) {
        cnt = (Integer) timesObj;
    }
    session.setAttribute("times",cnt);
%>
<form action="sy5-3.jsp" method="post">
    <p>Username:<input type="text" name="usn"></p>
    <p>Password:<input type="password" name="pwd"></p>
    <p><input type="submit" value="login"></p>
</form>
</body>
</html>
// 验证跳转页面
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
    <title>validate</title>
</head>
<body>
<%
    String usn=request.getParameter("usn");
    String pwd=request.getParameter("pwd");
    session.setAttribute("usn",usn);
    session.setAttribute("pwd",pwd);
    int times=(Integer)session.getAttribute("times");
    times++;
    session.setAttribute("times",times);
    if (usn.equals("sa") && pwd.equals("123")) {
        response.sendRedirect("savict.jsp");
    } else {
        response.sendRedirect("safai.jsp");
    }
%>
</body>
</html>
//登录成功页面
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
    <title>Title</title>
</head>
<body>
<%
    String usn=(String)session.getAttribute("usn");
%>
<h1>欢迎<%=usn%>,你已成功登录!</h1>
</body>
</html>
//登录失败页面
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
    <title>Title</title>
</head>
<body>
<%
    String usn=(String)session.getAttribute("usn");
    int times=(Integer)session.getAttribute("times");
    if(times<3){
%>
<h1>登录失败,<%= usn%>,输入密码有误</h1>
<h2>你还有<%=(3-times)%>次机会</h2>
<a href="login.jsp">返回登录页面</a>
<%
    }else {
%>
<h1>错误超过3次,<%= usn%>已被锁定<h1>
    <%
        }
    %>

</body>
</html>

 

实验心得 

谁又在做着架构大师的梦。 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值