- 浏览: 508790 次
- 性别:
- 来自: 北京
文章分类
- 全部博客 (136)
- SOS经典收藏 (9)
- 好文收藏 (3)
- 技术杂烩 (6)
- SQL常用操作 (8)
- J2EE开发错误 (11)
- Java开发点滴_SSH (20)
- 数据库维护 (11)
- 网络相关 (1)
- WEB JS_CSS_DIV (10)
- 加密解密 (1)
- Swing (2)
- C&C++ (8)
- Linux (2)
- 软件工程 (5)
- Util (3)
- 我的实例 (3)
- Office办公常用 (3)
- JSP_Servlet (3)
- 开发手记 (4)
- Java基础 (3)
- Oracle技术 (6)
- 基础文档库 (9)
- 设计模式 (1)
- weblogic8.1启动的时候,项目报错,找不到Class (0)
- Office应用 (1)
- VM虚拟机技术 (1)
- PHP开发日记 (0)
最新评论
-
MoonLord:
其实不需要删文件,修改一个值就好了,参考:https://gi ...
Beyond Compare报应用程序发生错误 不能打开解决办法 -
别拿土豆不当马铃薯:
${pageContext.request.contextPath} JSP取得绝对路径 -
hysunny0923:
不需要DBUtilis.java啦学到很多~感谢分享~~
第一个JSP+Servlet+JavaBean+JDBC示例程序 -
zsxy168:
少了DBUtils.java文件
第一个JSP+Servlet+JavaBean+JDBC示例程序 -
little_demonye:
写得好详细,清楚了很多,太感谢啦
第一个JSP+Servlet+JavaBean+JDBC示例程序
运行环境:
1.在SqlServer下的查询分析器中新建表:
2.在MyEclipse中新建Web工程,并创建包结构。
3.编写登陆界面。
3.编写工具类DBConn。
4.编写Servlet,LoginServlet.java。
5.在web.xml中配置Servlet。
配置关键代码
本机上的整个Web.xml代码
5.编写userBean。
6.编写JavaBean CheckUser。
7.编写错误页面及成功登陆页面。
error.jsp
success.jsp
=====================================================================
页面流向图
所涉知识点:
*JDBC连接的数据库的写法
*在Web.xml中配置Servlet
*在JSP中使用JavaBean
<jsp:useBean>与<jsp:setProperty>
<jsp:useBean>与<jsp:setProperty>是联系在一起的,在<jsp:setProperty>中的name值应当和<jsp:useBean>中的ID值相同。
*js验证的写法,及在页面中的触发
*request、response的常见用法
*转发和重定向的区别
转向页面:
重定向(redirect):以前的request中存放的变量全部失效,并进入一个新的request作用域。
转发(Forward):以前的request中存放的变量不会失效,就像把两个页面拼到了一起。
<jsp:forward page="login_success.jsp"/>
(注:只要使用了服务器端跳转<jsp:forward>,则请求内容可以在跳转之后的页面继续得到)
引用
JDK1.5
Tomcat5.5
MyEclips5.5.1 GA
SqlServer2000
windows2003
Tomcat5.5
MyEclips5.5.1 GA
SqlServer2000
windows2003
1.在SqlServer下的查询分析器中新建表:
create table dbuser( userId int identity(1,1) primary key not null, userName varchar(50), userPasswd varchar(50))
2.在MyEclipse中新建Web工程,并创建包结构。
3.编写登陆界面。
<%@ page language="java" contentType="text/html; charset=GB18030" pageEncoding="GB18030"%> <!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=GB18030"> <title>Insert title here</title> <style type="text/css"> body{ color : #000 ; font-size : 12px ; margin : 0px auto ; } </style> <script type="text/javascript"> function check(form){ //document.forms.form1.username.value取得form1中Username的值 并判断是否为空 if(document.forms.form1.username.value==""){ //如果 为""则弹出提示 alert("pls input username"); //将输入焦点定位到没有输入的地方 document.forms.form1.username.focus(); //返回错误 return false; } if(document.forms.form1.password.value==""){ alert("pls input password"); document.forms.form1.password.focus(); return false; } } </script> </head> <body> <form action="LoginServlet" method="post" name="form1"> <table border="1" cellspacing="1" cellpadding="1" bordercolor="silver" align="center"> <tr> <td colspan="2" align="center" bgcolor="#e8e8e8">用户登陆</td> </tr> <tr> <td>用户名:</td> <td><input type="text" name="username"/></td> </tr> <tr> <td>密码:</td> <td><input type="password" name="password"/></td> </tr> <tr> <td><a href="rsg.jsp" >新用户注册</a></td> <!-- onclick="return check(this) 调用上面的Script进行验证 --> <td><input type="submit" name="submit" onclick="return check(this);"/><input type="reset" name="reset"/></td> </tr> </table> </form> </body> </html>
3.编写工具类DBConn。
package utils; import java.io.*; import java.sql.*; public class DBConn { public static String driver;//定义驱动 public static String url;//定义URL public static String user;//定义用户名 public static String password;//定义密码 public static Connection conn;//定义连接 public static Statement stmt;//定义STMT public ResultSet rs;//定义结果集 //设置CONN static{ try { driver="com.microsoft.jdbc.sqlserver.SQLServerDriver"; url="jdbc:microsoft:sqlserver://localhost:1433;DatabaseName=qtliu"; user="sa"; password="sa"; Class.forName(driver); conn = DriverManager.getConnection(url,user,password); System.out.println("-------连接成功------"); } catch(ClassNotFoundException classnotfoundexception) { classnotfoundexception.printStackTrace(); System.err.println("db: " + classnotfoundexception.getMessage()); } catch(SQLException sqlexception) { System.err.println("db.getconn(): " + sqlexception.getMessage()); } } //构造函数,默认加裁配置文件为jdbc.driver public DBConn(){ this.conn=this.getConn(); } //返回Conn public Connection getConn(){ return this.conn; } //执行插入 public void doInsert(String sql) { try { stmt = conn.createStatement(); int i = stmt.executeUpdate(sql); } catch(SQLException sqlexception) { System.err.println("db.executeInset:" + sqlexception.getMessage()); }finally{ } } //执行删除 public void doDelete(String sql) { try { stmt = conn.createStatement(); int i = stmt.executeUpdate(sql); } catch(SQLException sqlexception) { System.err.println("db.executeDelete:" + sqlexception.getMessage()); } } //执行更新 public void doUpdate(String sql) { try { stmt = conn.createStatement(); int i = stmt.executeUpdate(sql); } catch(SQLException sqlexception) { System.err.println("db.executeUpdate:" + sqlexception.getMessage()); } } //查询结果集 public ResultSet doSelect(String sql) { try { conn=DriverManager.getConnection(url,user,password); stmt = conn.createStatement(java.sql.ResultSet.TYPE_SCROLL_INSENSITIVE,java.sql.ResultSet.CONCUR_READ_ONLY); rs = stmt.executeQuery(sql); System.out.println("取得结果集"); } catch(SQLException sqlexception) { System.err.println("db.executeQuery: " + sqlexception.getMessage()); } return rs; } /** *关闭数据库结果集,数据库操作对象,数据库链接 @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 = null; } if (stmt != null) { stmt.close(); stmt = null; } if (conn != null) { conn.close(); conn = null; } } /** *关闭数据库操作对象,数据库连接对象 * Close all the statement and conn int this instance * @throws SQLException * @throws Exception */ public void close() throws SQLException, Exception { if (stmt != null) { stmt.close(); stmt = null; } if (conn != null) { conn.close(); conn = null; } } //测试类 // public static void main(String []args){ // DBConn db=new DBConn(); // db.getConn(); // ResultSet rs=db.doSelect("select * from db_user where userName='admin'"); // try { // while(rs.next()){ // System.out.println(rs.getInt(1)); // System.out.println(rs.getString(3)); // // } // } catch (SQLException e) { // // TODO Auto-generated catch block // e.printStackTrace(); // } // } }
4.编写Servlet,LoginServlet.java。
package servlet; import java.io.IOException; import javax.servlet.RequestDispatcher; import javax.servlet.ServletException; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import model.CheckUser; import beans.UserBean; public class LoginServlet extends HttpServlet { /** * */ private static final long serialVersionUID = 7381169134016556647L; public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { doPost(request,response); } public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { //设置HTTP响应的文档类型,此处为Text/html,如果更改为application\msword则设置为word文档格式 response.setContentType("text/html"); //设置响应所采用的编码方式 response.setCharacterEncoding("GB18030"); //取得参数username的值 String uname=request.getParameter("username"); String passwd=request.getParameter("password"); UserBean user=new UserBean(); user.setUsername(uname); user.setPassword(passwd); CheckUser cku=new CheckUser(); boolean bool=cku.checkUsre(user); String forward; if(bool){ forward="success.jsp"; }else{ forward="error.jsp"; } RequestDispatcher rd=request.getRequestDispatcher(forward); rd.forward(request,response); } }
5.在web.xml中配置Servlet。
引用
配置关键代码
<servlet> <servlet-name>LoginServlet</servlet-name> <servlet-class>servlet.LoginServlet</servlet-class> </servlet> <servlet-mapping> <servlet-name>LoginServlet</servlet-name> <url-pattern>/LoginServlet</url-pattern> </servlet-mapping>
本机上的整个Web.xml代码
<?xml version="1.0" encoding="UTF-8"?> <web-app version="2.5" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"> <servlet> <servlet-name>LoginServlet</servlet-name> <servlet-class>servlet.LoginServlet</servlet-class> </servlet> <servlet-mapping> <servlet-name>LoginServlet</servlet-name> <url-pattern>/LoginServlet</url-pattern> </servlet-mapping> <welcome-file-list> <welcome-file>index.jsp</welcome-file> </welcome-file-list> </web-app>
5.编写userBean。
package beans; public class UserBean { public String username; public String password; public UserBean() { super(); } public String getPassword() { return password; } public void setPassword(String password) { this.password = password; } public String getUsername() { return username; } public void setUsername(String username) { this.username = username; } }
6.编写JavaBean CheckUser。
package model; import java.sql.ResultSet; import java.sql.SQLException; import utils.DBConn; import utils.DBUtils; import beans.UserBean; public class CheckUser { public boolean checkUsre(UserBean user){ if(user.username.equals("")||user.username!=null){ ResultSet rs=null; DBConn db=new DBConn(); rs=db.doSelect("select * from db_user where userName='"+user.getUsername()+"'"); try { if(rs.next()){ if(user.password.equals("")||user.password!=null){ rs=db.doSelect("select * from db_user where userPasswd="+user.password); return true; } } } catch (SQLException e) { e.printStackTrace(); } } return false; } }
7.编写错误页面及成功登陆页面。
error.jsp
<%@ page language="java" contentType="text/html; charset=GB18030" pageEncoding="GB18030"%> <!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=GB18030"> <title>Insert title here</title> </head> <body> Sorry!你的登陆信息不正确!系统无法让你登陆!<a href="login.jsp">点击返回</a> </body> </html>
success.jsp
<%@ page language="java" contentType="text/html; charset=GB18030" pageEncoding="GB18030"%> <jsp:useBean id="user" class="beans.UserBean" 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"> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=GB18030"> <title>Insert title here</title> </head> <body> <% session.setAttribute("user",user); String username=user.getUsername(); %> <%=username %>,欢迎您来到FUCK网!<br> 您的IP是:<%=request.getRemoteAddr() %><br> 你的主机是:<%=request.getRemoteHost() %><br> 你使用的协议是:<%=request.getProtocol() %><br> 你目前的地址是:<%=request.getRealPath("/") %> 你的主机端口是:<%=request.getRemotePort() %> </body> </html>
=====================================================================
页面流向图
所涉知识点:
*JDBC连接的数据库的写法
*在Web.xml中配置Servlet
*在JSP中使用JavaBean
<jsp:useBean>与<jsp:setProperty>
<jsp:useBean>与<jsp:setProperty>是联系在一起的,在<jsp:setProperty>中的name值应当和<jsp:useBean>中的ID值相同。
<jsp:useBean id="user" class="beans.UserBean" scope="request"/> <jsp:setProperty name="user" property="*"/>
*js验证的写法,及在页面中的触发
<script type="text/javascript"> function check(form){ if(document.forms.form1.username.value==""){ alert("pls input username"); document.forms.form1.username.focus(); return false; } if(document.forms.form1.password.value==""){ alert("pls input password"); document.forms.form1.password.focus(); return false; } } </script> <input type="submit" name="submit" onclick="return check(this);"/>
*request、response的常见用法
request常用方法 取得相关信息: 您的IP是:<%=request.getRemoteAddr() %><br> 你的主机是:<%=request.getRemoteHost() %><br> 你使用的协议是:<%=request.getProtocol() %><br> 你目前的地址是:<%=request.getRealPath("/") %> 接收请求内容: 通过:Request.getParemeter(“username”) 接收请求内容:代码如下所示: String name = request.getParameter("uname") ; 取得文本框提交的信息 String name = request.getParameter("uname") ; 取得按钮的名字: String name = request.getParameter("submit") ; 设置浏览器的输出文件类型,及编码标准 <%@page contentType="text/html;charset=gb2312"%> 两秒后自动跳转到新页面: <%response.setHeader("refresh","3;URL=login.jsp");%> //设置HTTP响应的文档类型,此处为Text/html,如果更改为application\msword则设置为word文档格式 response.setContentType("text/html"); //设置响应所采用的编码方式 response.setCharacterEncoding("GB18030");
*转发和重定向的区别
转向页面:
重定向(redirect):以前的request中存放的变量全部失效,并进入一个新的request作用域。
转发(Forward):以前的request中存放的变量不会失效,就像把两个页面拼到了一起。
<jsp:forward page="login_success.jsp"/>
(注:只要使用了服务器端跳转<jsp:forward>,则请求内容可以在跳转之后的页面继续得到)
Response.sendRedirect(“URL”);//重定向 request.getRequestDispatcher("apage.jsp").forward(request, response);//转发到apage.jsp <jsp:forward page="d.jsp"/> //转发到d.jsp 在JSP中使用 response.sendRedirect("apage.jsp");//重定向到apage.jsp
评论
8 楼
hysunny0923
2015-07-30
不需要DBUtilis.java啦
学到很多~感谢分享~~
学到很多~感谢分享~~
7 楼
zsxy168
2014-04-14
少了DBUtils.java文件
6 楼
little_demonye
2014-02-17
写得好详细,清楚了很多,太感谢啦
5 楼
顺顺利利
2013-06-29
求源码打包
4 楼
ta_shuo
2013-05-16
index.jsp,DBUtiles.java文件在哪里
3 楼
sunlips
2012-09-29
详细过头啦,哈哈哈
2 楼
zmmpsw1
2012-03-22
我却,够全,够详细,顶你。
1 楼
mr.covet
2011-11-22
顶一个
相关推荐
JSP+Servlet+JavaBean+JDBC示例程序
jsp+servlet+javaBean实现MVC,包括app示例、数据库备份、JDBCDriver
该项目使用jsp+servlet+javabean实现。其中用到了ajax技术。文件中包括了源代码和建表语句,数据库用的是oracle,源代码中没有上传所需的jar包,jar包需要jdbc驱动包和smartupload的jar包,可以自己到网上进行下载。...
3.5.3 第一个实例 92 3.5.4 第二个实例 94 3.6 解析名称空间 96 3.6.1 dom和名称空间 96 3.6.2 sax和名称空间 97 3.6.3 jdom和名称空间 98 3.6.4 dom4j和名称空间 98 3.7 小结 99 第4章 xsl转换 101 4.1 ...
3.5.3 第一个实例 92 3.5.4 第二个实例 94 3.6 解析名称空间 96 3.6.1 dom和名称空间 96 3.6.2 sax和名称空间 97 3.6.3 jdom和名称空间 98 3.6.4 dom4j和名称空间 98 3.7 小结 99 第4章 xsl转换 101 4.1 ...
3.5.3 第一个实例 92 3.5.4 第二个实例 94 3.6 解析名称空间 96 3.6.1 dom和名称空间 96 3.6.2 sax和名称空间 97 3.6.3 jdom和名称空间 98 3.6.4 dom4j和名称空间 98 3.7 小结 99 第4章 xsl转换 101 4.1 ...
3.5.3 第一个实例 92 3.5.4 第二个实例 94 3.6 解析名称空间 96 3.6.1 dom和名称空间 96 3.6.2 sax和名称空间 97 3.6.3 jdom和名称空间 98 3.6.4 dom4j和名称空间 98 3.7 小结 99 第4章 xsl转换 101 4.1 ...
JavaWeb、jsp毕业设计源码,包括但不限于servlet、jsp、javabean、JDBC等。这些源码可以直接用于您的毕业设计,也可以作为您学习和参考的资料。 详细的毕业论文,内容详实、逻辑清晰、论述深入。论文主要包括项目的...
JavaWeb、jsp毕业设计源码,包括但不限于servlet、jsp、javabean、JDBC等。这些源码可以直接用于您的毕业设计,也可以作为您学习和参考的资料。 详细的毕业论文,内容详实、逻辑清晰、论述深入。论文主要包括项目的...
JavaWeb、jsp毕业设计源码,包括但不限于servlet、jsp、javabean、JDBC等。这些源码可以直接用于您的毕业设计,也可以作为您学习和参考的资料。 详细的毕业论文,内容详实、逻辑清晰、论述深入。论文主要包括项目的...
JavaWeb、jsp毕业设计源码,包括但不限于servlet、jsp、javabean、JDBC等。这些源码可以直接用于您的毕业设计,也可以作为您学习和参考的资料。 详细的毕业论文,内容详实、逻辑清晰、论述深入。论文主要包括项目的...
JavaWeb、jsp毕业设计源码,包括但不限于servlet、jsp、javabean、JDBC等。这些源码可以直接用于您的毕业设计,也可以作为您学习和参考的资料。 详细的毕业论文,内容详实、逻辑清晰、论述深入。论文主要包括项目的...
JavaWeb、jsp毕业设计源码,包括但不限于servlet、jsp、javabean、JDBC等。这些源码可以直接用于您的毕业设计,也可以作为您学习和参考的资料。 详细的毕业论文,内容详实、逻辑清晰、论述深入。论文主要包括项目的...
JavaWeb、jsp毕业设计源码,包括但不限于servlet、jsp、javabean、JDBC等。这些源码可以直接用于您的毕业设计,也可以作为您学习和参考的资料。 详细的毕业论文,内容详实、逻辑清晰、论述深入。论文主要包括项目的...
JavaWeb、jsp毕业设计源码,包括但不限于servlet、jsp、javabean、JDBC等。这些源码可以直接用于您的毕业设计,也可以作为您学习和参考的资料。 详细的毕业论文,内容详实、逻辑清晰、论述深入。论文主要包括项目的...
JavaWeb、jsp毕业设计源码,包括但不限于servlet、jsp、javabean、JDBC等。这些源码可以直接用于您的毕业设计,也可以作为您学习和参考的资料。 详细的毕业论文,内容详实、逻辑清晰、论述深入。论文主要包括项目的...
JavaWeb、jsp毕业设计源码,包括但不限于servlet、jsp、javabean、JDBC等。这些源码可以直接用于您的毕业设计,也可以作为您学习和参考的资料。 详细的毕业论文,内容详实、逻辑清晰、论述深入。论文主要包括项目的...
JavaWeb、jsp毕业设计源码,包括但不限于servlet、jsp、javabean、JDBC等。这些源码可以直接用于您的毕业设计,也可以作为您学习和参考的资料。 详细的毕业论文,内容详实、逻辑清晰、论述深入。论文主要包括项目的...
JavaWeb、jsp毕业设计源码,包括但不限于servlet、jsp、javabean、JDBC等。这些源码可以直接用于您的毕业设计,也可以作为您学习和参考的资料。 详细的毕业论文,内容详实、逻辑清晰、论述深入。论文主要包括项目的...