JSP+servlet bean+JavaBean+mysql实现登录 出现了空指针异常 实在不会改 很简单的程序 希望大神帮忙 悬赏好谈

JavaBean+MySQL+jsp实现登录_百度知道MVC(JSP+JavaBean+Servlet)实例功能:
客户在登陆页面Login.html输入用户名和密码,提交表单,由Servlet(LoginValidate.java)调用JavaBean(LoginDBO.java)验证用户名和密码,最后调用视图returnMessage.jsp显示,如果成功显示成功信息,不成功显示失败信息。
MVC(JSP+JavaBean+Servlet)实例开发步骤:
1、&创建数据库(MySQL):mvc_user&& 1、创建表,表名为user_info。表结构如下:
&&& 2、向user_info表中增加一条数据,如下:
2、&使用MyEclipse:创建一个web& project。
&输入工程名:MyMVC,其他默认。
点击Finish。&
3、引入一个MySql数据库的连接驱动包:&&&&&
点击ok,完成引入包的动作。
4、在WebRoot文件夹中新建两个页面:login.html和returnMessage.jsp。
login.html页面代码:
&html&& &head&&&&& &title&登陆页面――中国网页设计&/title&& &/head&& & &body& && &form method="post" action="login.do"&&& 用户名:&& &input type="text" name="username"/&&& 密码:& &input type="password" name="password"/&& &input type="Submit" value="提交"/&&& &/form& && &/body&&/html&
returnMessage.jsp
&%@ page language="java" import="java.util.*" pageEncoding="UTF-8" import="java.sql.*"%&&html&& &head&&&&&&&&&&&& &title&MVC(JSP+JavaBean+Servlet)入门实例--中国网页设计&/title&& &/head&& & &body&
&& &%&&&&& String message=new String ( request.getParameter("message").getBytes("ISO8859-1"),"GBK" ); %&&%=message %&& &/body&&/html&
[3056][3349][3897][2112][3160]
共有2人对本文发表评论
(网友评论仅供表达个人看法,并不表明本站同意其观点或证实其描述)
ghj& 15:22:33&评论说:
web.xml&servlet-name&第一个是大写Login,改成小写。
管理员回复:这位亲你非常仔细哦,确实如此,你应该已经做出来了。
dddd& 20:59:13&评论说:
login.do&是什么啊
管理员回复:servletJSP+JavaBean+Servlet实现用户登录与注册_Java源代码_Java学习网
create table user(
id int primary key auto_increment,
user varchar(50) not null,
pwd varchar(50) not null,
name varchar(50) not null,
sex varchar(50) not null,
age int(50) not null
&%@ page language=&java& import=&java.util.*& pageEncoding=&utf-8&%&
String path = request.getContextPath();
String basePath = request.getScheme()+&://&+request.getServerName()+&:&+request.getServerPort()+path+&/&;
&!DOCTYPE HTML PUBLIC &-//W3C//DTD HTML 4.01 Transitional//EN&&
&base href=&&%=basePath%&&&
&title&欢迎来到学生管理系统&/title&
&meta http-equiv=&pragma& content=&no-cache&&
&meta http-equiv=&cache-control& content=&no-cache&&
&meta http-equiv=&expires& content=&0&&
&meta http-equiv=&keywords& content=&keyword1,keyword2,keyword3&&
&meta http-equiv=&description& content=&This is my page&&
&link rel=&stylesheet& type=&text/css& href=&styles.css&&
&div align=&center&& &font size=&+2& color=&#FF6633&&用户登录&/font&
&form id=&form1& name=&form1& method=&post& action=&loginServlet&&
&table width=&357& border=&0& align=&center&&
&td width=&128&&用户名:&/td&
&td width=&219&&&label&
&input name=&user& type=&text& id=&user& /&
&/label&&/td&
&td&密 码:&/td&
&td&&label&
&input name=&pwd& type=&password& id=&pwd& /&
&/label&&/td&
&td&&label&
&input type=&submit& name=&Submit& value=&登录& /&
&/label&&/td&
&td&&label&&a href=&addUser.jsp&&用户注册&/a&&/label&&/td&
addUser.jsp
&%@ page language=&java& import=&java.util.*& pageEncoding=&UTF-8&%&
String path = request.getContextPath();
String basePath = request.getScheme()+&://&+request.getServerName()+&:&+request.getServerPort()+path+&/&;
&!DOCTYPE HTML PUBLIC &-//W3C//DTD HTML 4.01 Transitional//EN&&
&base href=&&%=basePath%&&&
&title&用户注册&/title&
&meta http-equiv=&pragma& content=&no-cache&&
&meta http-equiv=&cache-control& content=&no-cache&&
&meta http-equiv=&expires& content=&0&&
&meta http-equiv=&keywords& content=&keyword1,keyword2,keyword3&&
&meta http-equiv=&description& content=&This is my page&&
&link rel=&stylesheet& type=&text/css& href=&styles.css&&
/* * JAVA小游戏-拼图 我做的第一个小游戏 * Cell类是继承的按钮...
//需求分析:写一个较为严谨的学生选课系统,实现学生可以选...
//经典案例:用户注册与登录系统 //用户注册/登陆,将用户注册...
// 项目目标:建立员工管理系统第一个版本。 // 实现图形用户界...
JAVA操作文件复制、移动和删除源代码(JAVA中文网整理发布) http...mysql(5)
jsp+servlet+JavaBean+MySQL实现登陆实例
运行环境:
eclipse4.0
Windows2007
需要的jar包是:mysql-connector-java-5.1.28.jar
①:首先创建在MySQL中创建一张tusers表
DROP TABLE IF EXISTS `tusers`;
CREATE TABLE `tusers` (
& `username` varchar(20) NOT NULL,
& `userid` int(20) NOT NULL AUTO_INCREMENT,
& `password` varchar(20) NOT NULL,
& PRIMARY KEY (`userid`)
) ENGINE=MyISAM AUTO_INCREMENT=2 DEFAULT CHARSET=utf8;
然后在其中插入一个用户:用户名:admin &密码:admin
-- ----------------------------
-- Records of tusers
-- ----------------------------
INSERT INTO `tusers` VALUES ('admin', '1', 'admin');
②、在eclipse中创建一个web工程,其工程目录格式如下图:
<span style="color:#、在WebContent下创建其登陆页面及其相关的登陆成功页面和登陆失败页面:login.jsp、success.jsp、error.jsp
&%@ page language=&java& contentType=&text/ charset=utf-8&
& & pageEncoding=&utf-8&%&
&!DOCTYPE html PUBLIC &-//W3C//DTD HTML 4.01 Transitional//EN& &http://www.w3.org/TR/html4/loose.dtd&&
&meta http-equiv=&Content-Type& content=&text/ charset=utf-8&&
&title&登陆&/title&
&script type=&text/javascript&&
function check(form){
//取得form1中username的&#20540;并判断是否为空
if(document.forms.form1.username.value==&&){
alert(&请输入用户名&);
document.forms.form1.username.focus();
if(document.forms.form1.password.value==&&){
alert(&请输入密码&);
document.forms.form1.password.focus();
&form action=&LoginServlet& method=&post& name=&form1&&
&label&username&/label&
&input type=&text& name=&username& /&
&label&password&/label&
&input type=&password& name=&password& /&
&input type=&submit& name=&submit& onclick=&return check(this);& value=&登陆& /&
&input type=&reset& name=&reset& value=&重置& /&
success.jsp
&%@ page language=&java& contentType=&text/ charset=utf-8& &
& & pageEncoding=&utf-8&%& &
&jsp:useBean id=&user& class=&model.Tusers& scope=&request&/& &
&jsp:setProperty name=&user& property=&*&/& &
&!DOCTYPE html PUBLIC &-//W3C//DTD HTML 4.01 Transitional//EN& &http://www.w3.org/TR/html4/loose.dtd&& &
&meta http-equiv=&Content-Type& content=&text/ charset=utf-8&& &
&title&Insert title here&/title& &
& & session.setAttribute(&user&,user); &
& & String username=user.getUsername(); &
&&%=username %&,欢迎您来到成功页面!&br& &
&您的IP是:&%=request.getRemoteAddr() %&&br& &
你的主机是:&%=request.getRemoteHost() %&&br& &
你使用的协议是:&%=request.getProtocol() %&&br& &
你目前的地址是:&%=request.getRealPath(&/&) %& &
你的主机端口是:&%=request.getRemotePort() %& &
&%@ page language=&java& contentType=&text/ charset=UTF-8&
& & pageEncoding=&UTF-8&%&
&!DOCTYPE html PUBLIC &-//W3C//DTD HTML 4.01 Transitional//EN& &http://www.w3.org/TR/html4/loose.dtd&&
&meta http-equiv=&Content-Type& content=&text/ charset=UTF-8&&
&title&Insert title here&/title&
&h6&ERROR&/h6&
<span style="color:#、在model包中创建tusers表的实体类:Tusers.java
public class Tusers {
& & private I
& & private S
& & private S
& & public Integer getUserid() {
& & public void setUserid(Integer userid) {
& & & & this.userid =
& & public String getUsername() {
& & public void setUsername(String username) {
& & & & this.username =
& & public String getPassword() {
& & public void setPassword(String password) {
& & & & this.password =
3、在util包中创建一个DBConn封装类来链接MySQL:DBConn.java
import java.sql.C
import java.sql.DriverM
import java.sql.ResultS
import java.sql.SQLE
import java.sql.S
public class DBConn {
public static S//定义驱动
public static S//定义链接URL
public static S//定义数据库用户名
public static S//定义数据库密码
public static C//定义链接
public static S//定义statement
public static ResultS//定义结果集
//设置connection
driver=&com.mysql.jdbc.Driver&;
url=&jdbc:mysql://localhost:3306/test?characterEncoding=utf-8&;
username=&test&;
password=&test&;
Class.forName(driver);
connection=DriverManager.getConnection(url,username,password);
System.out.println(&链接成功--------------------------------&);
} catch (ClassNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}catch(SQLException ex){
ex.printStackTrace();
& & public DBConn(){ & &&
& & & & this.connection=this.getConn(); &
& & } & &&
& & public Connection getConn(){ & &&
& & & & return this. & &&
& & public void doInsert(String sql) { & &&
& & &try { & &&
& & statement = connection.createStatement(); & &&
& & & & &int i = statement.executeUpdate(sql); & &&
& & &} catch(SQLException sqlexception) { & &&
& & & & &System.err.println(&db.executeInset:& &#43; sqlexception.getMessage()); & &&
& & &}finally{ & &&
& & & & & & &&
& & &} & &&
&public void doDelete(String sql) { & &&
& & &try { & &&
& & statement = connection.createStatement(); & &&
& & & & &int i = statement.executeUpdate(sql); & &&
& & &} catch(SQLException sqlexception) { & &&
& & & & &System.err.println(&db.executeDelete:& &#43; sqlexception.getMessage()); & &&
& & &} & &&
&public void doUpdate(String sql) { & &&
& & &try { & &&
& & statement = connection.createStatement(); & &&
& & & & &int i = statement.executeUpdate(sql); & &&
& & &} catch(SQLException sqlexception) { & &&
& & & & &System.err.println(&db.executeUpdate:& &#43; sqlexception.getMessage()); & &&
& & &} & &&
&public ResultSet doSelect(String sql) { & &&
& & &try { &
& & & & &connection=DriverManager.getConnection(url,username,password); &
& & & & &statement = connection.createStatement(java.sql.ResultSet.TYPE_SCROLL_INSENSITIVE,java.sql.ResultSet.CONCUR_READ_ONLY); & & &&
& & & & &result = statement.executeQuery(sql); &&
& & & & &System.out.println(&取得结果集&); &
& & &} catch(SQLException sqlexception) { & &&
& & & & &System.err.println(&db.executeQuery: & &#43; sqlexception.getMessage()); & &&
& & &} & &&
& & & & &&
& *关闭数据库结果集,数据库操作对象,数据库链接
& & @Function: Close all the statement and conn int this instance and close the parameter ResultSet &&
& & @Param: ResultSet &&
& & @Exception: SQLException,Exception &&
& &**/ & &
& public void close(ResultSet rs) throws SQLException, Exception { & &&
& & if (rs != null) { & &&
& & & rs.close(); & &&
& & & rs = & &&
& & } & &&
& & if (statement != null) { & &&
& & statement.close(); & &&
& & statement = & &&
& & } & &&
& & if (connection != null) { & &&
& & connection.close(); & &&
& & connection = & &&
& & } & &&
& &* Close all the statement and conn int this instance &&
& &* @throws SQLException &&
& &* @throws Exception &&
& public void close() throws SQLException, Exception { & &&
& & if (statement != null) { & &&
& & statement.close(); & &&
& & statement = & &&
& & } & &&
& & if (connection != null) { & &&
& & connection.close(); & &&
& & connection = & &&
& & } & &&
& public static void main(String[] args){
&DBConn db=new DBConn();
&db.getConn();
&ResultSet rs=db.doSelect(&select userid,username,password from tusers where username='admin'&);
&while(rs.next()){
&System.out.println(rs.getInt(1));
&System.out.println(rs.getString(3));
&}catch(SQLException e){
&e.printStackTrace();
4、在model包下创建一个类来对 登陆用户进行判断:CheckUser.java
import java.sql.ResultS
import java.sql.SQLE
import util.DBC
public class CheckUser {
public boolean checkUser(Tusers user){
if(user.getUsername().equals(&&) || user.getUsername()!=null){
ResultSet rs=
DBConn db=new DBConn();
rs=db.doSelect(&select userid,username,password from tusers where username='&&#43;user.getUsername()&#43;&'&);
while(rs.next()){
if(user.getPassword().equals(&&)|| user.getPassword()!=null){
rs=db.doSelect(&select userid,username,password from tusers where &password=&&#43;user.getPassword());
}catch(SQLException e){
e.printStackTrace();
5、在controller中创建一个servlet:LoginServlet.java
import java.io.IOE
import javax.servlet.RequestD
import javax.servlet.ServletE
import javax.servlet.annotation.WebS
import javax.servlet.http.HttpS
import javax.servlet.http.HttpServletR
import javax.servlet.http.HttpServletR
import model.CheckU
import model.T
&* Servlet implementation class LoginServlet
@WebServlet(name = &LoginServlet1&, urlPatterns = { &/LoginServlet1& })
public class LoginServlet extends HttpServlet {
private static final long serialVersionUID = 1L;
& & &* @see HttpServlet#HttpServlet()
& &/* public LoginServlet() {
& & & & super();
& & & & // TODO Auto-generated constructor stub
* @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
doPost(request, response);
* @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response)
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
// TODO Auto-generated method stub
//设置HTTP响应的文档类型,此处为Text/html,如果更改为application\msword则设置为word文档&#26684;式 &
& & & & response.setContentType(&text/html&); &
& & & & //设置响应所采用的编码方式 &
& & & & response.setCharacterEncoding(&utf-8&); &
Tusers user=new Tusers();
String userid=request.getParameter(&userid&);
String username=request.getParameter(&username&);
String password=request.getParameter(&password&);
user.setUsername(username);
user.setPassword(password);
CheckUser ck=new CheckUser();
boolean bool=ck.checkUser(user);
forward=&success.jsp&;
forward=&error.jsp&;
RequestDispatcher rd=request.getRequestDispatcher(forward);
rd.forward(request, response);
6、然后在web.xml中配置servlet:
&?xml version=&1.0& encoding=&UTF-8&?&
&web-app xmlns:xsi=&http://www.w3.org/2001/XMLSchema-instance& xmlns=&/xml/ns/javaee& xsi:schemaLocation=&/xml/ns/javaee /xml/ns/javaee/web-app_3_0.xsd& id=&WebApp_ID& version=&3.0&&
& &display-name&authority&/display-name&
& &welcome-file-list&
& & &welcome-file&index.html&/welcome-file&
& & &welcome-file&index.htm&/welcome-file&
& & &welcome-file&index.jsp&/welcome-file&
& & &welcome-file&default.html&/welcome-file&
& & &welcome-file&default.htm&/welcome-file&
& & &welcome-file&default.jsp&/welcome-file&
& &/welcome-file-list&
& &servlet&
& & &servlet-name&LoginServlet&/servlet-name&
& & &servlet-class&controller.LoginServlet&/servlet-class&
& &/servlet&
& &servlet-mapping&
& & &servlet-name&LoginServlet&/servlet-name&
& & &url-pattern&/LoginServlet&/url-pattern&
& &/servlet-mapping&
&/web-app&其中login.jsp中的action中的&#20540;要和url-pattern的&#20540;相对应
到此这个简单的登陆案例就完成了,比较简单吧。如果用到spring&#43;springmvc&#43;mybatis结合一起那就更简单了。这个项目这是为了熟悉一下链接数据库的那块代码。
参考知识库
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
访问:14750次
排名:千里之外
原创:18篇
转载:16篇
(1)(1)(1)(4)(2)(9)(16)ajax+jsp+servlet+mysql实现登陆验证
找了很多网上的代码,多半是不能用的,不是这有错就是那有错,只好自己写一个。亲自试验,绝对可以用。
1、首先在Mysql创建一个user的数据库,在user数据库创建一个users的表,设计表,字段为name
varchar类型;pass
verchar类型;添加数据name 为aa
,pass也是aa。
2、在项目的WebContent–WEB-INF–lib下导入一个数据库连接驱动的jar包,mysql-connector-java-5.1.33-bin.jar网上下载,解压到lib文件夹即可。
3、编写JSP页面。
& id="myform" action="" method="post"&
账号: id="tdName"&
type="text" id="userName" name="name" /&
id="pwdBox"&
密码: id="tdPass"&
type="password" id="userPass" name="pass" /&&&&
id="state"&&&
align="center" id="buttom" &
& type="button" onClick="check()" value="登录" /&&
4、编写AJAX函数check() 和回调函数,放在刚才的JSP页面的head部分。
type="text/javascript"&
var xmlHttp=false;
function createXMLHttpRequest() {
if (window.ActiveXObject){
xmlHttp = new
ActiveXObject("Microsoft.XMLHTTP");
}else if (window.XMLHttpRequest){
xmlHttp = new XMLHttpRequest();
function check(){
createXMLHttpRequest();
xmlHttp.onreadystatechange=
nameStr=myform.name.
passStr=myform.pass.
var url="check?name="+nameStr+"&pass="+passS
xmlHttp.open("get",url);
xmlHttp.setRequestHeader("ContentType","application/x-www-form-charset=UTF-8");
xmlHttp.send(null);
function callback(){
if(xmlHttp.readyState==4){
if(xmlHttp.status==200){
var str = xmlHttp.responseT
alert(str);
if(str.length==2){
var tdName=document.getElementById("tdName");
tdName.replaceChild(document.createTextNode(nameStr),tdName.firstChild);
var tdPass=document.getElementById("pwdBox");
tdPass.innerHTML="";
var trButtom=document.getElementById("buttom");
trButtom.innerHTML='&font color=\"red\"&恭喜你成功登录&/font&
&input type="button" onclick="exit()" value="退出" /&&/div&';
trButtom.name="yes";
document.getElementById("state").innerHTML="&font color=\"red\"&用户名或密码有误&/font&";
5、编写servlet
import beans.SqlC
import java.io.*;
import java.util.*;
import javax.servlet.*;
import javax.servlet.http.*;
public class Check extends HttpServlet {
public void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
PrintWriter out = response.getWriter();
String name=request.getParameter("name");
String pass=request.getParameter("pass");
SqlCheck sc=new SqlCheck();
sc.setName(name);
sc.setPass(pass);
if(sc.check()){
out.print("aa");
request.getSession().setAttribute("name",name );
out.print("a");
}catch(Exception e){
out.print(e.toString());
out.flush();
out.close();
public void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
doGet(request,response);
6、编写SqlCheck类
import java.sql.*;
import javax.servlet.ServletE
import javax.mail.S
import javax.servlet.http.HttpS
import javax.servlet.http.HttpServletR
import javax.servlet.http.HttpServletR
import org.omg.CORBA.R
public class SqlCheck {
private boolean ok=false;
private String name=null;
private String pass=null;
public boolean check()throws Exception{
checkSQL(this.name,this.pass);
return this.
public void setName(String name){
this.name =
public String getName(){
public void setPass(String pass){
this.pass =
public String getPass(){
private void checkSQL(String name,String pass) throws Exception{
Class.forName("com.mysql.jdbc.Driver");
String url="jdbc:mysql://localhost:3306/user?user=root&password=数据库连接密码&characterEncoding=UTF-8";
Connection con=DriverManager.getConnection(url);
Statement st=con.createStatement();
ResultSet rs=st.executeQuery("select * from users where name='"+name+"' and pass='"+pass+"'");
if(rs.next()){
this.ok=true;
this.ok=false;
`7、配置web.xml“
&servlet.Check&
参考知识库
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
访问:44903次
积分:3324
积分:3324
排名:第7365名
原创:157篇
转载:44篇
评论:29条
(5)(8)(8)(39)(26)(24)(26)(6)(11)(6)(12)(1)(9)(13)(6)(9)

我要回帖

更多关于 httpservletbean 的文章

 

随机推荐