JSP——编写3个页面,实现登录页面login.jsp,在其中输入用户名,密码,发送到登录验证页面loginCL.jsp,验证登录成功

编写3个页面,实现登录页面login.jsp,在其中输入用户名,密码,发送到登录验证页面loginCL.jsp,验证登录成功,在success.jsp页面显示成功提示、打印出相关信息,验证登录失败,返回login.jsp页面,在login.jsp页面提示“用户名不存在”或“用户密码错误”的提示信息。用户如果直接访问loginCL.jsp或success.jsp,均转向login.jsp页面。

注意:用request属性

1.新建文件login.jsp、loginCL.jsp、success.jsp

2.login.jsp文件代码

<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>

<html>

  <head>

    <title>login.jsp页面</title>

  </head>

  <body>

    <form action="loginCL.jsp" method="post" name=form >

     <font size="5">登录界面</font><br>

     用户名:<input type="text" value=""name="username"><br>

     密    码:<input type="text"value="" name="password"><br>

     <input type="submit"value="提交"name="submit">

     <input type="reset"value="重置">   

    </form>

<%=(String)request.getAttribute("usertxt") %>

  </body>

</html>

 

3.loginCL.jsp文件代码

<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>

<html>

  <head>

    <title>loginCL.jsp页面</title>

  </head>

  <body>

<%

String referer = request.getHeader("Referer");

if(referer==null||referer.trim().length()==0||

!referer.equals("http://localhost:8081/two/login.jsp")){

response.sendRedirect("login.jsp");

return;

}

request.setCharacterEncoding("utf-8");

response.setContentType("text/html;charset=utf-8");

String name=request.getParameter("username");

String password=request.getParameter("password");

//判断登陆界面的用户名和密码,根据输入的不同情况进行不同的处理

if(name.trim().equals("admin")&&password.trim().equals("1234"))

{

request.setAttribute("usertxt", "正常登录!!!");

request.getRequestDispatcher("success.jsp").forward(request, response);

}

else{

request.setAttribute("usertxt", "用户名或密码错误!!!");

request.getRequestDispatcher("login.jsp").forward(request, response);

 

}

%>

  </body>

</html>

 

4.success.jsp文件代码

<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>

<html>

  <head>

    <title>success.jsp页面</title>

  </head>

  <body>

<%

String referer = request.getHeader("Referer");

if(referer==null||referer.trim().length()==0||

!referer.equals("http://localhost:8081/two/login.jsp")){

response.sendRedirect("login.jsp");

return;

}

request.setCharacterEncoding("utf-8");

response.setContentType("text/html;charset=utf-8");

%>  

<%=(String)request.getAttribute("usertxt") %>

  </body>

</html>

 

5.浏览器显示效果

  • 68
    点赞
  • 693
    收藏
    觉得还不错? 一键收藏
  • 10
    评论
### 回答1: 该段文字描述了一个登陆页面的过程,用户需要在login1.jsp页面输入用户名密码,然后通过点击“登陆”按钮跳转到login2.jsp页面,在test.tag文件中验证用户的身份,如果身份验证正确,则可以返回登陆成功信息,在login2.jsp页面。如果身份验证失败,则会出现错误信息。 ### 回答2: 实现上述功能,需要考虑以下几个步骤: 1. 编写login1.jsp页面,包括输入框和登录按钮,用户输入用户名密码后,点击登录按钮会提交表单到login2.jsp页面。 2. 在login2.jsp页面中,使用test.tag文件来验证用户名密码的正确性。test.tag文件可以用于多个页面中的验证,为了方便管理,可以将其放在WEB-INF文件夹下。test.tag文件中需要编写一些Java代码来获取用户输入用户名密码,然后和数据库中的数据进行比对,如果匹配成功,则返回登录成功信息;否则返回错误信息。 3. 在login2.jsp页面中,在test.tag文件中进行验证后,根据验证结果分别返回登录成功信息或错误信息。可以使用ajax技术来实现页面局部刷新,避免整个页面的刷新。 4. 在服务器端编写Java代码进行数据库连接和操作。数据库中需要保存用户名密码的信息。在Java代码中,可以使用JDBC技术来连接数据库,并编写SQL语句来进行查找和匹配。 总之,实现登录页面需要的技术包括Java Web开发、JDBC、SQL、JavaScript和ajax等。在编写代码时,需要注意安全性和可维护性,例如防止SQL注入、使用编程规范和注释等。 ### 回答3: 该问题需要涉及到Web开发中前端与后端的相互配合,以及如何进行用户认证。 首先,用户在登录页面login1.jsp输入用户名密码,点击登录按钮,前端代码需要将用户名密码发送到后端进行验证。在这里,我们可以使用表单(form)元素提交用户名密码信息。具体来说,需要将用户名密码作为表单元素参数传递到后端,通常是通过POST方法提交。示例代码如下: <form method="post" action="login2.jsp"> 用户名: <input type="text" name="username"><br> 密码: <input type="password" name="password"><br> <input type="submit" value="提交"> </form> 在上述代码中,form元素在提交时将用户输入用户名密码通过POST方法传递给login2.jsp页面。这里需要注意,需要将form元素的method设置为post,这样可以保证用户名密码不被暴露在URL中。此外,需要将form元素的action设置为login2.jsp,表示表单数据将被提交到login2.jsp页面进行处理。 接下来,我们需要在login2.jsp页面中进行用户认证工作。我们可以将验证工作封装成一个JSP标签(tag),在页面中引入该tag进行验证。具体来说,需要定义一个test.tag文件,该文件包含了用户认证的处理逻辑。下面是test.tag文件的示例代码: <%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %> <%@ attribute name="username" type="java.lang.String" %> <%@ attribute name="password" type="java.lang.String" %> <% String msg = null; // 进行用户认证工作,返回msg字符串值 %> <c:choose> <c:when test="<%= msg == null %>"> <p>登录成功!</p> </c:when> <c:otherwise> <p>用户名密码错误,请重试!</p> </c:otherwise> </c:choose> 在上述代码中,我们使用taglib指令引入了JSTL标准库,该库提供了核心标签库功能。test.tag文件定义了两个属性,分别是用户名密码。在文件中,我们首先进行用户认证工作,验证用户名密码是否正确,并返回一个字符串值msg。接着,我们使用<c:choose>和<c:when>/<c:otherwise>标签结构来判断msg值。如果msg值为null,说明用户认证成功页面输出登录成功信息;否则,说明用户名密码错误,页面输出错误信息。 最后,我们需要在login2.jsp页面中引入这个tag,进行用户认证。具体来说,我们可以使用JSP的<jsp:include>标签将test.tag嵌入到login2.jsp页面中。示例代码如下: <%@ page contentType="text/html; charset=utf-8" %> <html> <head> <title>登录结果</title> </head> <body> <jsp:include page="test.tag"> <jsp:param name="username" value="<%= request.getParameter("username") %>"/> <jsp:param name="password" value="<%= request.getParameter("password") %>"/> </jsp:include> </body> </html> 在上述代码中,我们使用了<jsp:include>标签将test.tag文件嵌入到页面中,并通过<jsp:param>标签将用户名密码传递给test.tag。需要注意的是,在传递参数时,需要使用request.getParameter()方法获取表单元素的值,并用<%= %>标签把它们嵌入到页面中。这样,test.tag就能获得用户名密码,并进行认证处理了。 综上所述,实现登录页面的关键是前后端的数据传递与用户认证的处理逻辑。通过上述的示例代码,可以较为清晰地了解这一过程。
评论 10
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值