JSP制作简单登陆
Posted 坚持到底gl
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了JSP制作简单登陆相关的知识,希望对你有一定的参考价值。
JSP制作简单登陆界面
运行环境
eclipse+tomcat+mysql 不知道的可以参考Jsp运行环境——Tomcat
项目列表
这里我先把jsp文件先放在Web-INF外面访问
- 需要建立的几个文件在图上.jsp
- 还要导入MySQL的jar包mysql-5.0.5.jar,导到WEB-INF中的lib文件夹就可以不需要Bulid Path
- 开始编写代码:
代码演示:
index.jsp就好像一般网站的首页一样感觉,将header.jsp和footer.jsp引入其中
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <title>首页</title> <style> #nav>ul>li{ float:left; margin-left:50px; } #login{ clear:both; } </style> </head> <body> <!-- 引入header.jsp的头部文件 --> <%@ include file="header.jsp" %> <div id="login"> <a href="login.jsp"><button>登陆</button></a> </div> <!-- 引入footer.jsp的脚部文件 --> <%@include file="footer.jsp" %> </body> </html>
header.jsp
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <div id="nav"> <ul> <li ><a href="">导航1</a></li> <li><a href="">导航2</a></li> <li><a href="">导航3</a></li> <li><a href="">导航4</a></li> <li><a href="">导航5</a></li> <li><a href="">导航6</a></li> </ul> </div>
footer.jsp
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <div> <p>xxxxxxxxxxx可以试试|xxxxxxxxxxxx技术有限公司</p> <p>京 ICP 证 1234567 号|Copyright © 1999-2017, All Rights Reserved </p> </div>
页面内容展示:
login.jsp登陆用户名密码填写界面
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <title>登陆页面</title> </head> <body> <%--表单--%> <fieldset> <legend>登陆界面</legend> <form action="test.jsp" method="post"> <input type="text" name="username"><br> <input type="password" name="password"><br> <input type="submit" value="登陆"> <!-- EL语句,后面验证表单时,验证错误反回信息--> ${error} </form> </fieldset> </body> </html>
内容显示:
test.jsp 是对表单login.jsp 的提交的内容与数据库中的数据对比验证,再相应的跳转
<%@page import="java.sql.*"%> <%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <% //请求获取login.jsp的用户名username的值 String username=request.getParameter("username"); //请求获取login.jsp的密码password的值 String password=request.getParameter("password"); //数据库MySQL的地址 String DBURL="jdbc:mysql://localhost:3306/zhou?useUnicode=true&characterEncoding=utf-8"; String DBName="root"; //登入用户名 String DBPwd="123456";//登入密码 //加载mysql驱动 Class.forName("com.mysql.jdbc.Driver"); //连接数据库 Connection conn=DriverManager.getConnection(DBURL,DBName,DBPwd); //创建Statement对象 Statement st=conn.createStatement(); //sql语句,搜索这个username和password在数据库是否存在 String sql="select * from user where name=\'"+username+"\'and pwd=\'"+password+"\'"; //运行sql语句,并把得到的结果放入结果集ResultSet中 ResultSet rs=st.executeQuery(sql); //判断这个结果集是否存在,一般username只有一个 if(rs.next()){ //设置一个username,将后面username其内容赋值给前面一个username,可以以便下一个页面使用 request.setAttribute("username", username); //跳转页面到userpage.jsp request.getRequestDispatcher("userpage.jsp").forward(request, response); }else{ //设置一个error,将后面的字赋给这个error,以便先一个跳转页面的使用,request的作用域有限 request.setAttribute("error", "用户名或密码错误!!!"); request.getRequestDispatcher("login.jsp").forward(request, response); }
conn.close();
rs.close();
%>
登陆错误显示的页面内容:
userpage.jsp这个页面就是登陆成功之后显示的页面
<%@page import="javafx.scene.chart.PieChart.Data"%> <%@page import="java.util.Date"%> <%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <title>用户界面</title> </head> <body> <div> <!-- ${username}是获取到test.jsp 中判断中重新设置的username,知道是谁登陆了,这个是谁的页面 --> <p>${username},你好,登陆成功!!</p> </div> <% //session的作用域问题,可以记录一个网站的浏览量。先得到一个count Object obj=session.getAttribute("count"); //判断这个对象是否为空 if(obj==null){ //空则重新设置一下count的值 session.setAttribute("count", 0); }else{ //否则将得到的对象强转加1,就可以记录浏览量 int i=(int)obj+1; session.setAttribute("count", i); %> <div>你是第<%=i %>位登陆的用户</div> <% } //获取当前时间 Date date=new Date(); out.print("现在时间:"+date); %> <div>你的IP地址:<%=request.getRemoteAddr()%></div> </body> </html>
页面内容:localhost就是127.0.0.1,有时候地址栏是local host时会显示8个0:
整个简单的登陆就完事了
想了解EL语言的具体感觉可以看这个 JSP中的EL表达式详细介绍
以上是关于JSP制作简单登陆的主要内容,如果未能解决你的问题,请参考以下文章
python 用于在终端中运行的sublime text 3的简单代码片段制作工具
谷歌浏览器调试jsp 引入代码片段,如何调试代码片段中的js
jsp页面中用<jsp:forward>跳转登陆的页面,如果登陆成功就是跳转到manage.jsp中,结果地址栏上的地址没变。