java jsp+servlet实现登录网页设计

2024-06-21 05:32

本文主要是介绍java jsp+servlet实现登录网页设计,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

java jsp+servlet实现登录网页设计
这次涉及到四个文件:
登录页面:login.jsp
登录成功欢迎页面:success.jsp
登录失败页面:fail.jsp
Servlet处理文件:LoginServlet.java
其实还涉及到一个文件:web.xml,这个后面再说:
下面分别介绍这几个文件:
//--------------------------------------------------------------------------------------------------------------------
LoginServlet.java   内容:

package org.cai.servlet ;
import java.sql.* ;
import java.io.* ;
import javax.servlet.http.* ;
import javax.servlet.* ;
public class LoginServlet extends HttpServlet implements Servlet{
public LoginServlet(){
}

protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException{

}
// protected void service(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException{
// System.out.println("-------------------------") ;
// doPost(request, response) ;
// }
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException{
response.setContentType("text/html;charset=gb2312") ;
request.setCharacterEncoding("gb2312") ;
String result = "" ;
//获取用户名
String username = request.getParameter("username") ;
String psw = request.getParameter("password") ;
if ((username == "") || (username==null) || (username.length() > 20 )){
try{
result = "请输入用户名(不能超过20个字符)!" ;
request.setAttribute("message" ,result) ;
response.sendRedirect("login.jsp") ;
}catch(Exception e){
e.printStackTrace() ;
}
}
if ((psw == "") || (psw==null) || (psw.length() > 20 )){
try{
result = "请输入密码(不能超过20个字符)!" ;
request.setAttribute("message" ,result) ;
response.sendRedirect("login.jsp") ;
}catch(Exception e){
e.printStackTrace() ;
}
}

//登记JDBC驱动程序
try{
Class.forName("org.gjt.mm.mysql.Driver") ;
}catch(ClassNotFoundException e){
e.printStackTrace() ;
System.out.println("Class Not Found Exception . ") ;
}
//连接URL
String url ="jdbc:mysql://localhost:3306/learnJSP" ;
Connection conn = null ;
Statement stmt = null ;
ResultSet rs = null ;

try{
conn = DriverManager.getConnection(url, "root", "root") ;
stmt = conn.createStatement() ;
//SQL语句
String sql ="select * from userInfo where username='"+username+"' and userpsw= '"+psw+"'" ;
rs = stmt.executeQuery(sql) ;//返回查询结果
}catch(SQLException e){
e.printStackTrace() ;
}
HttpSession session = request.getSession() ;
session.setAttribute("username", username) ;
//System.out.println("+++++++++++++++++++++++"+ username) ;
try{
if (rs.next()){ //如果记录集非空,表明有匹配的用户名和密码,登陆成功
// 登录成功后将username设置为session变量的username
// 这样在后面就可以通过 session.getAttribute("username") 来获取用户名,
// 同时这样还可以作为用户登录与否的判断依据
session.setAttribute("age",rs.getString("age")) ;
session.setAttribute("sex",rs.getString("sex")) ;
session.setAttribute("weight",rs.getString("weight")) ;
response.sendRedirect("success.jsp") ;
}else{
session.setAttribute("message", "用户名或密码不匹配。");
response.sendRedirect("fail.jsp") ;
}
}catch(SQLException e){
e.printStackTrace() ;
}
}

private static final long serialVersionUID = 1L;
}

//--------------------------------------------------------------------------------------------------------------------
login.jsp内容:

<%@ page language="java" contentType="text/html;charset=gb2312"%>
<html>
<head>
<title>登陆</title>
</head>
<body>
<form method="POST" name="frmLogin" action="LoginServlet">
<h1 align="center">用户登录</h1><br />
<center>
<table border=1>
<tr>
<td>用户名:</td>
<td>
<input type="text" name="username" value="Your name" size="20" maxlength="20" οnfοcus="if (this.value=='Your name') this.value='';" />
</td>
</tr>
<tr>
<td>密&nbsp;&nbsp;码:</td>
<td>
<input type="password" name="password" value="Your password" size="20" maxlength="20" οnfοcus="if (this.value=='Your password') this.value='';" />
</td>
</tr>
<tr>
<td>
<input type="submit" name="Submit" value="提交" onClick="return validateLogin()" />
</td>
<td>
<input type="reset" name="Reset" value="重置" />
</td>
</tr>
</table>
</center>
</form>
<script language="javascript">
function validateLogin(){
var sUserName = document.frmLogin.username.value ;
var sPassword = document.frmLogin.password.value ;
if ((sUserName =="") || (sUserName=="Your name")){
alert("请输入用户名!");
return false ;
}

if ((sPassword =="") || (sPassword=="Your password")){
alert("请输入密码!");
return false ;
}
}
</script>
</body>
</html>

//--------------------------------------------------------------------------------------------------------------------
success.jsp 内容:

<%@ page language="java" contentType="text/html;charset=gb2312" pageEncoding ="gb2312"%>
<html>
<head>
<title>欢迎</title>
</head>
<body>
<%
String userName = (String)session.getAttribute("username") ;
String age = (String)session.getAttribute("age") ;
String weight = (String)session.getAttribute("weight") ;
String sex = (String)session.getAttribute("sex") ;
System.out.println("性别:A" + sex +"A") ;
if (sex.trim().equals("M")) {
sex ="男" ;
}else{
sex = "女" ;
}
%>
<div align="center">
<%=userName %>
欢迎您,登陆成功!<br />
<font color="blue">登陆用户信息:</font>
<table border =1 >
<tr>
<td>&nbsp;姓名:&nbsp;</td>
<td>&nbsp;&nbsp;<%=userName %>&nbsp;&nbsp;</td>
</tr>
<tr>
<td>&nbsp;年龄:&nbsp;</td>
<td>&nbsp;&nbsp;<%=age %>&nbsp;&nbsp;</td>
</tr>
<tr>
<td>&nbsp;体重:&nbsp;</td>
<td>&nbsp;&nbsp;<%=weight %>&nbsp;kg&nbsp;</>
</tr>
<tr>
<td>&nbsp;性别:&nbsp;</td>
<td>&nbsp;&nbsp;<%=sex %>&nbsp;&nbsp;</>
</tr>
</table>
<a href="login.jsp">返回</a>
</div>
</body>
</html>

//--------------------------------------------------------------------------------------------------------------------
fail.jsp 内容:


<%@ page language="java" contentType="text/html;charset=gb2312" pageEncoding ="gb2312"%>
<html>
<head>
<title>登陆失败</title>
</head>
<body>
<%
String userName = (String)session.getAttribute("username") ;
String msg = (String)session.getAttribute("message") ;
%>
<div align="center">
<%=userName %>
对不起,登陆失败!<br />
<font color="red">原因: </font>
<%=msg %>
<br/>
<br/>
5秒后将返回登陆界面。
</div>

<%
response.setHeader("Refresh","5;URL=/learnJSP/login.jsp");
%>
</body>
</html>

//--------------------------------------------------------------------------------------------------------------------
mysql数据库中需要创建数据库learnJSP,其中创建表userInfo 创建表语句为:

create database learnJSP ;
use learnJSP
create table userInfo(id int not null primary key,username char(20) not null,userpsw char(20) ,age int ,weight int ,sex enum('M','F')) ;

需要把连接mysql的jar包放到项目的lib目录中
//--------------------------------------------------------------------------------------------------------------------
web.xml 内容:

<?xml version="1.0" encoding="ISO-8859-1"?>
<!DOCTYPE web-app
PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN"
"http://java.sun.com/dtd/web-app_2_3.dtd">
<web-app>
<welcome-file-list>
<welcome-file>index.jsp</welcome-file> //index改为login ?
</welcome-file-list>

<servlet>
<servlet-name>
LoginServlet
</servlet-name>
<servlet-class>
org.cai.servlet.LoginServlet
</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>LoginServlet</servlet-name>
<url-pattern>/LoginServlet</url-pattern>
</servlet-mapping>

</web-app>



http://blog.csdn.net/cai5/article/details/7266460

这篇关于java jsp+servlet实现登录网页设计的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1080339

相关文章

mybatis执行insert返回id实现详解

《mybatis执行insert返回id实现详解》MyBatis插入操作默认返回受影响行数,需通过useGeneratedKeys+keyProperty或selectKey获取主键ID,确保主键为自... 目录 两种方式获取自增 ID:1. ​​useGeneratedKeys+keyProperty(推

Spring Boot集成Druid实现数据源管理与监控的详细步骤

《SpringBoot集成Druid实现数据源管理与监控的详细步骤》本文介绍如何在SpringBoot项目中集成Druid数据库连接池,包括环境搭建、Maven依赖配置、SpringBoot配置文件... 目录1. 引言1.1 环境准备1.2 Druid介绍2. 配置Druid连接池3. 查看Druid监控

Linux在线解压jar包的实现方式

《Linux在线解压jar包的实现方式》:本文主要介绍Linux在线解压jar包的实现方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录linux在线解压jar包解压 jar包的步骤总结Linux在线解压jar包在 Centos 中解压 jar 包可以使用 u

Java中读取YAML文件配置信息常见问题及解决方法

《Java中读取YAML文件配置信息常见问题及解决方法》:本文主要介绍Java中读取YAML文件配置信息常见问题及解决方法,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要... 目录1 使用Spring Boot的@ConfigurationProperties2. 使用@Valu

创建Java keystore文件的完整指南及详细步骤

《创建Javakeystore文件的完整指南及详细步骤》本文详解Java中keystore的创建与配置,涵盖私钥管理、自签名与CA证书生成、SSL/TLS应用,强调安全存储及验证机制,确保通信加密和... 目录1. 秘密键(私钥)的理解与管理私钥的定义与重要性私钥的管理策略私钥的生成与存储2. 证书的创建与

浅析Spring如何控制Bean的加载顺序

《浅析Spring如何控制Bean的加载顺序》在大多数情况下,我们不需要手动控制Bean的加载顺序,因为Spring的IoC容器足够智能,但在某些特殊场景下,这种隐式的依赖关系可能不存在,下面我们就来... 目录核心原则:依赖驱动加载手动控制 Bean 加载顺序的方法方法 1:使用@DependsOn(最直

SpringBoot中如何使用Assert进行断言校验

《SpringBoot中如何使用Assert进行断言校验》Java提供了内置的assert机制,而Spring框架也提供了更强大的Assert工具类来帮助开发者进行参数校验和状态检查,下... 目录前言一、Java 原生assert简介1.1 使用方式1.2 示例代码1.3 优缺点分析二、Spring Fr

java使用protobuf-maven-plugin的插件编译proto文件详解

《java使用protobuf-maven-plugin的插件编译proto文件详解》:本文主要介绍java使用protobuf-maven-plugin的插件编译proto文件,具有很好的参考价... 目录protobuf文件作为数据传输和存储的协议主要介绍在Java使用maven编译proto文件的插件

c++ 类成员变量默认初始值的实现

《c++类成员变量默认初始值的实现》本文主要介绍了c++类成员变量默认初始值,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧... 目录C++类成员变量初始化c++类的变量的初始化在C++中,如果使用类成员变量时未给定其初始值,那么它将被

Java中的数组与集合基本用法详解

《Java中的数组与集合基本用法详解》本文介绍了Java数组和集合框架的基础知识,数组部分涵盖了一维、二维及多维数组的声明、初始化、访问与遍历方法,以及Arrays类的常用操作,对Java数组与集合相... 目录一、Java数组基础1.1 数组结构概述1.2 一维数组1.2.1 声明与初始化1.2.2 访问