Servlet在MyEclipse中实现简单登陆和注册的全部过程
下面是一个具体的例子,进行简单的登陆验证、注册和添加照片
整体的结构:
---》src中的包和java类
--->Webroot下的内容
---》首先建好数据库(如下)
---》然后就是在src下建cn.csdn.web.domain包和User.java
User.java中的内容为:(对数据库中的字段进行定义)
packagecn.csdn.web.domain;
importjava.sql.Blob;
importjava.util.Date;
importjava.sql.Timestamp;
publicclassUser{
privateIntegerid;
privateStringusername;
privateStringuserpass;
privateStringsex;
privateIntegerage;
privateTimestamprdate;
privateDatebirth;
privateDoublesalary;
privateBlobphoto;
publicUser(){
super();
//TODOAuto-generatedconstructorstub
}
publicUser(Integerid,Stringusername,Stringuserpass,Stringsex,
Integerage,Timestamprdate,Datebirth,Doublesalary,Blobphoto){
super();
this.id=id;
this.username=username;
this.userpass=userpass;
this.sex=sex;
this.age=age;
this.rdate=rdate;
this.birth=birth;
this.salary=salary;
this.photo=photo;
}
publicIntegergetId(){
returnid;
}
publicvoidsetId(Integerid){
this.id=id;
}
publicStringgetUsername(){
returnusername;
}
publicvoidsetUsername(Stringusername){
this.username=username;
}
publicStringgetUserpass(){
returnuserpass;
}
publicvoidsetUserpass(Stringuserpass){
this.userpass=userpass;
}
publicStringgetSex(){
returnsex;
}
publicvoidsetSex(Stringsex){
this.sex=sex;
}
publicIntegergetAge(){
returnage;
}
publicvoidsetAge(Integerage){
this.age=age;
}
publicTimestampgetRdate(){
returnrdate;
}
publicvoidsetRdate(Timestamprdate){
this.rdate=rdate;
}
publicDategetBirth(){
returnbirth;
}
publicvoidsetBirth(Datebirth){
this.birth=birth;
}
publicDoublegetSalary(){
returnsalary;
}
publicvoidsetSalary(Doublesalary){
this.salary=salary;
}
publicBlobgetPhoto(){
returnphoto;
}
publicvoidsetPhoto(Blobphoto){
this.photo=photo;
}
}
-----》建立cn.csdn.web.util包和JdbcUtil.java这个类
JdbcUtil.java类:(连接数据库的操作)
packagecn.csdn.web.util;
importjava.sql.Connection;
importjava.sql.DriverManager;
importjava.sql.PreparedStatement;
importjava.sql.ResultSet;
importjava.sql.SQLException;
/**
*@authorlike*
*/
publicclassJdbcUtil{
/*单例模式创建Connection对象*/
privatestaticConnectionconn=null;
/*URL地址*/
privatestaticfinalStringURL="jdbc:mysql://localhost:3306/登录信息?user=root&password=like&useUnicode=true&characterEncoding=UTF8";
/*获取connection对象的静态方法*/
publicstaticConnectiongetConn(){
if(conn==null){
/*准备驱动程序*/
/*创建连接对象*/
try{
Class.forName("com.mysql.jdbc.Driver");
conn=DriverManager.getConnection(URL);
}catch(Exceptione){
e.printStackTrace();
}
}
returnconn;
}
publicstaticvoidrelease(ResultSetrs,PreparedStatementpstm){
if(rs!=null){
try{
rs.close();
}catch(SQLExceptione){
//TODOAuto-generatedcatchblock
e.printStackTrace();
}
}
if(pstm!=null)
try{
pstm.close();
}catch(SQLExceptione){
//TODOAuto-generatedcatchblock
e.printStackTrace();
}
}
}
--->然后建立cn.csdn.web.dao包和两个java类
UserDao类中:
packagecn.csdn.web.dao;
importjava.io.File;
importcn.csdn.web.domain.User;
publicinterfaceUserDao{
/*登录功能*/
booleancheckUser(Stringname,Stringpass);
/*注册功能*/
booleaninsert(Usercentity);
}
----->UserDaoImpl.java类中:(这里面包括验证登陆、注册和添加图片)
packagecn.csdn.web.dao;
importjava.io.File;
importjava.io.FileInputStream;
importjava.sql.Connection;
importjava.sql.PreparedStatement;
importjava.sql.ResultSet;
importjava.sql.SQLException;
importcn.csdn.web.domain.User;
importcn.csdn.web.util.JdbcUtil;
publicclassUserDaoImplimplementsUserDao{
/*封装数据库操作属性*/
privateConnectionconn=null;
privatePreparedStatementpstm=null;
privateResultSetrs=null;
/*登陆*/
publicbooleancheckUser(Stringname,Stringpass){
/*第一步:声明返回值变量*/
booleanflag=false;
/*第二步:获取连接对象*/
conn=JdbcUtil.getConn();
/*第三步:声明sql语句*/
Stringsql="selectidusername,userpass,sex,age,rdate,birth,salaryfromuserwhereusername=?anduserpass=?";
try{
/*第四步:根据sql语句创建预处理对象*/
pstm=conn.prepareStatement(sql);
/*第五步:为占位符赋值*/
intindex=1;
pstm.setObject(index++,name);
pstm.setObject(index++,pass);
/*第六步:执行查询*/
rs=pstm.executeQuery();
/*第七步:判断*/
if(rs.next()){
flag=true;
}
/*第八步:释放资源*/
JdbcUtil.release(rs,pstm);
}catch(SQLExceptione){
//TODOAuto-generatedcatchblock
e.printStackTrace();
}
returnflag;
}
/*注册*/
publicbooleaninsert(Userentity){
/*第一步:声明返回值变量*/
booleanflag=false;
/*第二步:获取连接对象*/
conn=JdbcUtil.getConn();
/*第三步:声明sql语句*/
Stringsql="insertintouser(username,userpass,sex,age,rdate,birth,salary)values(?,?,?,?,?,?,?)";
try{
/*第四步:根据sql语句创建预处理对象*/
pstm=conn.prepareStatement(sql);
/*第五步:为占位符赋值*/
intindex=1;
pstm.setObject(index++,entity.getUsername());
pstm.setObject(index++,entity.getUserpass());
pstm.setObject(index++,entity.getSex());
pstm.setObject(index++,entity.getAge());
pstm.setObject(index++,entity.getRdate());
pstm.setObject(index++,entity.getBirth());
pstm.setObject(index++,entity.getSalary());
/*第六步:执行查询*/
inti=pstm.executeUpdate();
/*第七步:判断*/
if(i>0){
flag=true;
}
}catch(Exceptione){
//TODOAuto-generatedcatchblock
e.printStackTrace();
}
/*第八步:释放资源*/
JdbcUtil.release(rs,pstm);
returnflag;
}
----》写一个cn.csdn.web.service包和两个类
--->UserService.java类:
packagecn.csdn.web.service;
importcn.csdn.web.dao.UserDao;
publicinterfaceUserServiceextendsUserDao{
}
--->UserServiceImpl类:
packagecn.csdn.web.service;
importjava.io.File;
importcn.csdn.web.dao.UserDao;
importcn.csdn.web.dao.UserDaoImpl;
importcn.csdn.web.domain.User;
publicclassUserServiceImplimplementsUserService{
/*封装实体操作类*/
publicstaticUserDaouDao=newUserDaoImpl();
/*登陆*/
publicbooleancheckUser(Stringname,Stringpass){
//TODOAuto-generatedmethodstub
returnuDao.checkUser(name,pass);
}
/*注册*/
publicbooleaninsert(Userentity){
//TODOAuto-generatedmethodstub
returnuDao.insert(entity);
}
}
-------》因为要实现的是从页面上进行操作,所以有必要写几个网页
卸载WebRoot文件夹下的login(自己建立)文件夹中
---->登录页面;
<!DOCTYPEhtml>
<html>
<head>
<title>login.html</title>
<metahttp-equiv="keywords"content="keyword1,keyword2,keyword3">
<metahttp-equiv="description"content="thisismypage">
<metahttp-equiv="content-type"content="text/html;charset=UTF-8">
<!--<linkrel="stylesheet"type="text/css"href="./styles.css">-->
</head>
<body>
<div>
<h1>
用户登陆界面操作
</h1>
</div>
<divalign="center">
<formaction="./servlet/CheckUserServlet"method="post">
用户名:
<inputtype="text"name="uname"/>
<br/>
密码
<inputtype="password"name="upass"/>
<br/>
<inputtype="submit"value="登陆">
<inputtype="button"value="注册"onclick="register()">
</form>
</div>
</body>
</html>
<scripttype="text/javascript">
<!--
functionregister(){
window.location="./login/register.html";
}
//-->
</script>
------>注册页面
<!DOCTYPEhtml>
<html>
<head>
<title>register.html</title>
<metahttp-equiv="keywords"content="keyword1,keyword2,keyword3">
<metahttp-equiv="description"content="thisismypage">
<metahttp-equiv="content-type"content="text/html;charset=UTF-8">
<!--<linkrel="stylesheet"type="text/css"href="./styles.css">-->
</head>
<body>
<divalign="center">
<h1>用户注册界面</h1>
</div>
<divid="user">
<formaction="../servlet/RegisterService"nethod="post">
用户姓名:<inputtype="text"name="uname"><br/>
密码:<inputtype="password"name="upass"><br/>
确认密码:<inputtype="password"name="cupass"><br/>
性别:<inputtype="radio"name="usex"value="男">男
<inputtype="radio"name="usex"value="女">女<br/>
年龄:<inputtype="text"name="uage"><span>必须是整型</span><br/>
<!--注册日期就是当前日期-->
出生日期:<inputtype="text"name="ubirth"><span>格式必须是1990-10-10形式</span><br/>
薪资:<inputtype="text"name="usalary"><br/>
<inputtype="submit"name="提交"><br/>
</form>
</body>
</html>
-----》web.xml里面指向的地址因改为login.html
------》与servlet连接
------>建立cn.csdn.web.servlet包和两个java(servlet)
--->验证与servlet的连接,CheckUserServlet.java类
packagecn.csdn.web.servlet;
importjava.io.IOException;
importjava.io.PrintWriter;
importjavax.servlet.ServletException;
importjavax.servlet.http.HttpServlet;
importjavax.servlet.http.HttpServletRequest;
importjavax.servlet.http.HttpServletResponse;
importcn.csdn.web.service.UserService;
importcn.csdn.web.service.UserServiceImpl;
publicclassCheckUserServletextendsHttpServlet{
publicvoiddoGet(HttpServletRequestrequest,HttpServletResponseresponse)
throwsServletException,IOException{
this.doPost(request,response);
}
publicvoiddoPost(HttpServletRequestrequest,HttpServletResponseresponse)
throwsServletException,IOException{
/*第一步:设置编码*/
request.setCharacterEncoding("UTF-8");
/*第二步:获取请求的参数*/
Stringuname=request.getParameter("uname");
Stringupass=request.getParameter("upass");
/*第三步:类型转换*/
/*第四步:执行业务操作*/
/*3.1声明业务对象*/
UserServiceuService=newUserServiceImpl();
/*3.2*/
booleanflag=uService.checkUser(uname,upass);
/*第五步:判断根据结果执行相应的操作*/
if(flag)
/*如果成功重定向到success.html*/
response.sendRedirect("../login/success.html");
else
/*如果失败重定向到success.html*/
response.sendRedirect("../login/error.html");
}
}
---->注册与servlet的连接,RegisterService.java:
packagecn.csdn.web.servlet;
importjava.io.IOException;
importjava.io.PrintWriter;
importjava.sql.Timestamp;
importjava.text.DateFormat;
importjava.text.ParseException;
importjava.util.Date;
importjavax.servlet.ServletException;
importjavax.servlet.http.HttpServlet;
importjavax.servlet.http.HttpServletRequest;
importjavax.servlet.http.HttpServletResponse;
importcn.csdn.web.domain.User;
importcn.csdn.web.service.UserService;
importcn.csdn.web.service.UserServiceImpl;
publicclassRegisterServiceextendsHttpServlet{
publicvoiddoGet(HttpServletRequestrequest,HttpServletResponseresponse)
throwsServletException,IOException{
this.doPost(request,response);
}
publicvoiddoPost(HttpServletRequestrequest,HttpServletResponseresponse)
throwsServletException,IOException{
/*第一步:设置编码*/
request.setCharacterEncoding("UTF-8");
/*第二步:获取请求的参数*/
Stringuname=request.getParameter("uname");
Stringupass=request.getParameter("upass");
Stringusex=request.getParameter("usex");
Stringuage=request.getParameter("uage");
Stringubirth=request.getParameter("ubirth");
Stringusalary=request.getParameter("usalary");
/*第三步:类型转换*/
Integerage=Integer.parseInt(uage);
DateFormatformat=DateFormat.getDateInstance();
Datebirth=null;
try{
birth=format.parse(ubirth);
}catch(ParseExceptione){
//TODOAuto-generatedcatchblock
e.printStackTrace();
}
Doublesalary=Double.valueOf(usalary);
/*第四步:创建实体对象*/
Userentity=newUser();
/*第五步:为实体对象的属性赋值*/
entity.setUsername(uname);
entity.setUserpass(upass);
entity.setSex(usex);
entity.setAge(age);
/*注册日期为当前日期*/
entity.setRdate(newTimestamp(System.currentTimeMillis()));
entity.setBirth(birth);
entity.setSalary(salary);
/*第六部:执行业务操作对象*/
/*6.1创建业务对象*/
UserServiceuService=newUserServiceImpl();
/*6.2执行业务操作*/
booleanflag=uService.insert(entity);
/*第七步:执行判断*/
if(flag)
//注册成功
response.sendRedirect("../login/rsuccess.html");
else
//注册失败
response.sendRedirect("../login/rerror.html");
}
}
------》建立cn.csdn.web.Junit包和测试类
---->登陆验证和注册需要开启服务器UserTest.java类:
packagecn.csdn.web.Junit;
importjava.io.File;
importjava.sql.Timestamp;
importjava.util.Date;
importorg.junit.Test;
importcn.csdn.web.domain.User;
importcn.csdn.web.service.UserService;
importcn.csdn.web.service.UserServiceImpl;
publicclassUserTest{
/*测试Service层创建一个seervice的对象*/
publicUserServiceuService=newUserServiceImpl();
/*验证登陆*/
@Test
publicvoidcheckUser(){
booleanflag=uService.checkUser("like","like");
if(flag)
System.out.println("你是正确的");
else
System.out.println("你是错误的");
}
/*注册*/
@Test
publicvoidinsert(){
Userentity=newUser();
entity.setUsername("kddk");
entity.setUserpass("kddk");
entity.setAge(12);
entity.setBirth(newDate());
entity.setRdate(newTimestamp(System.currentTimeMillis()));
entity.setSalary(22.0);
entity.setSex("男");
booleanflag=uService.insert(entity);
if(flag){
System.out.println("ok");
}else{
System.out.println("no");
}
}
}
----》此外最重要的一点就是一定要在lib文件夹中放入mysql的jar包
-----------》》这样一个简单的servlet在MyEclipse中的应用就写好了
分享到:
相关推荐
本章节将深入探讨Servlet的原理和实践,帮助你理解如何在实际项目中运用这项技术。 1. **C/S与B/S架构** C/S(Client/Server)架构是一种传统的两层架构,客户端直接与服务器通信。而B/S(Browser/Server)架构,...
Sun 公司在 API 中提供了一个 servlet 接口,我们如果想使用 java 程序开发一个动态的 web 网页,只需要实现servelet 接口,并把类部署到 web 服务器上就可以运行了。 Servlet 是由 sun 公司命名的,Servlet = ...
在这个场景中,我们讨论的是如何在MyEclipse环境中,结合Servlet和Action实现简单的分页功能。 MyEclipse是一款强大的Java集成开发环境,它支持Web应用的开发,包括Servlet和Struts等框架。Servlet是Java中的服务器...
6. **自定义环境和服务设置**:在“Customize Environment and Services Settings”界面中选择“No”,直接点击下一步。 7. **指定域名称**:在“Domain name”处输入“mydomain”,然后点击“Create”按钮。 8. **...
在本文中,我们将深入探讨如何在MyEclipse集成开发环境中配置WebLogic服务器,特别是WebLogic 9.2版本。WebLogic是由BEA Systems(现已被Oracle收购)开发的一款企业级应用服务器,它支持J2EE标准,提供了一个用于...
在MyEclipse中搭建SSH框架,可以极大地提高开发效率,简化项目的结构。 **1. 新建工程** 首先,我们需要在MyEclipse中创建一个新的Web项目。点击菜单栏的`File` > `New` > `Web Project`,并命名为“school”。这将...
在IT行业中,开发Web应用程序是常见的任务之一,而MyEclipse和Tomcat是开发者们常用来构建和部署Java Web项目的工具。本篇文章将详细介绍如何在MyEclipse集成开发环境中配置并建立一个基于Tomcat服务器的Web项目。 ...
下面是一个简单的Servlet示例,用于演示如何实现URL重写: ```java package hh; import java.io.IOException; import java.io.PrintWriter; import javax.servlet.*; import javax.servlet.http.HttpServlet; ...
6. 在 Customize Environment and Services Settings 界面中默认为 No,Next。 7. 在 Domain name 处输入 mydomain,点击 Create。 8. 完成后点击 Done 关闭 Configuration Wizard 对话框。 9. 运行开始 -> 程序 -> ...
如果在MyEclipse中创建的项目选择了J2EE 1.4或更高的标准,则在部署到WebLogic 8时会出现错误,提示web.xml部署描述符不合规。 - **解决方案**:为了解决上述兼容性问题,可以选择升级WebLogic到9.2版本,该版本支持...
在软件开发中,集成开发环境(IDE)如MyEclipse与应用服务器如Tomcat的连接配置是开发者日常工作中必不可少的步骤。Tomcat是一款流行的开源Java Servlet容器,而MyEclipse则是一个功能强大的Java集成开发工具,支持...
在Eclipse中配置Tomcat是为了在Eclipse集成开发环境中运行和调试基于Java的Web应用程序,如JSP和Servlet。以下是一步一步的配置过程: 首先,确保安装了JDK 1.4.0或以上版本,以及Tomcat服务器。Eclipse的最新版本...
学习和使用JSP与Servlet,关键在于理解它们在Web开发中的角色:JSP专注于视图层,提供动态内容的展示,而Servlet则专注于控制层,处理请求和响应。MyEclipse作为一个强大的集成开发环境,简化了开发过程,让开发者...
在描述中提到的"myeclipse下的工程文件",意味着这个压缩包包含了一个完整的MyEclipse项目,这是一个集成开发环境(IDE),专为Java开发者设计,支持多种Web技术,包括Servlet、JSP和JavaBeans等。在MyEclipse中导入...
在Java Web开发中,过滤器(Filter)是一种非常重要的技术,它能够对用户的请求和响应进行预处理或后处理,从而实现各种功能需求,例如设置缓存策略、登录验证、字符编码转换等。下面我们将详细探讨标题和描述中提到...
文档中提到了“ActionServletAction”和“ActionServletStructMVC”,显示了Servlet在Web应用中的关键作用。 综上所述,文档涉及到的知识点涵盖了Java语言的开发、集成开发环境的使用、JSP页面的开发、JavaBean的...
例如,在Eclipse中,检查Project的Properties,MyEclipse,Web,Web Context-root,检查这个路径名称是否书写正确。最后,检查一下文件名称是否书写正确。 二、URL输入错误 解决方法:排查URL的书写是否正确,查看...
- **初始化参数配置**:在`web.xml`文件中为Servlet设置初始化参数,例如参数名`name`和`student_no`。 - **输出格式**:使用`PrintWriter`对象向客户端输出定制化的HTML页面,如`学号为*********的***同学,你好...
在本“Struts课程模块测试”中,学生需要利用MyEclipse开发工具来实现一个基于Struts的Web项目,其核心功能是判断一个字符串是否为另一个字符串的前缀。 首先,创建一个新的Web项目“Prefix”,这是开发的基础。在...