`
touchinsert
  • 浏览: 1334552 次
  • 性别: Icon_minigender_1
  • 来自: 北京
文章分类
社区版块
存档分类
最新评论

Servlet在MyEclipse中简单实现(No.31)

 
阅读更多

ServletMyEclipse中实现简单登陆和注册的全部过程

下面是一个具体的例子,进行简单的登陆验证、注册和添加照片

整体的结构:

---》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原理和实践

    本章节将深入探讨Servlet的原理和实践,帮助你理解如何在实际项目中运用这项技术。 1. **C/S与B/S架构** C/S(Client/Server)架构是一种传统的两层架构,客户端直接与服务器通信。而B/S(Browser/Server)架构,...

    使用MyEclipse搭建java Web项目开发.docx

    Sun 公司在 API 中提供了一个 servlet 接口,我们如果想使用 java 程序开发一个动态的 web 网页,只需要实现servelet 接口,并把类部署到 web 服务器上就可以运行了。 Servlet 是由 sun 公司命名的,Servlet = ...

    MyEclipse中分页

    在这个场景中,我们讨论的是如何在MyEclipse环境中,结合Servlet和Action实现简单的分页功能。 MyEclipse是一款强大的Java集成开发环境,它支持Web应用的开发,包括Servlet和Struts等框架。Servlet是Java中的服务器...

    MyEclipse 5.0 + WebLogic 9.2 配置解.doc

    6. **自定义环境和服务设置**:在“Customize Environment and Services Settings”界面中选择“No”,直接点击下一步。 7. **指定域名称**:在“Domain name”处输入“mydomain”,然后点击“Create”按钮。 8. **...

    MyEclipse+WebLogic配置详解[参考].pdf

    在本文中,我们将深入探讨如何在MyEclipse集成开发环境中配置WebLogic服务器,特别是WebLogic 9.2版本。WebLogic是由BEA Systems(现已被Oracle收购)开发的一款企业级应用服务器,它支持J2EE标准,提供了一个用于...

    myeclipse搭建SSH框架图解

    在MyEclipse中搭建SSH框架,可以极大地提高开发效率,简化项目的结构。 **1. 新建工程** 首先,我们需要在MyEclipse中创建一个新的Web项目。点击菜单栏的`File` &gt; `New` &gt; `Web Project`,并命名为“school”。这将...

    MyEclipse+Tomcat下配置建立Web Project

    在IT行业中,开发Web应用程序是常见的任务之一,而MyEclipse和Tomcat是开发者们常用来构建和部署Java Web项目的工具。本篇文章将详细介绍如何在MyEclipse集成开发环境中配置并建立一个基于Tomcat服务器的Web项目。 ...

    JAVA URL重写

    下面是一个简单的Servlet示例,用于演示如何实现URL重写: ```java package hh; import java.io.IOException; import java.io.PrintWriter; import javax.servlet.*; import javax.servlet.http.HttpServlet; ...

    MyEclipse + WebLogic 9.2 配置详解

    6. 在 Customize Environment and Services Settings 界面中默认为 No,Next。 7. 在 Domain name 处输入 mydomain,点击 Create。 8. 完成后点击 Done 关闭 Configuration Wizard 对话框。 9. 运行开始 -&gt; 程序 -&gt; ...

    myeclipse+weblogic安装配置

    如果在MyEclipse中创建的项目选择了J2EE 1.4或更高的标准,则在部署到WebLogic 8时会出现错误,提示web.xml部署描述符不合规。 - **解决方案**:为了解决上述兼容性问题,可以选择升级WebLogic到9.2版本,该版本支持...

    tomcat与myeclipse的连接配置[参照].pdf

    在软件开发中,集成开发环境(IDE)如MyEclipse与应用服务器如Tomcat的连接配置是开发者日常工作中必不可少的步骤。Tomcat是一款流行的开源Java Servlet容器,而MyEclipse则是一个功能强大的Java集成开发工具,支持...

    Eclipse里配置Tomcat

    在Eclipse中配置Tomcat是为了在Eclipse集成开发环境中运行和调试基于Java的Web应用程序,如JSP和Servlet。以下是一步一步的配置过程: 首先,确保安装了JDK 1.4.0或以上版本,以及Tomcat服务器。Eclipse的最新版本...

    jsp和servelet 的学习和使用

    学习和使用JSP与Servlet,关键在于理解它们在Web开发中的角色:JSP专注于视图层,提供动态内容的展示,而Servlet则专注于控制层,处理请求和响应。MyEclipse作为一个强大的集成开发环境,简化了开发过程,让开发者...

    displytag最小单元

    在描述中提到的"myeclipse下的工程文件",意味着这个压缩包包含了一个完整的MyEclipse项目,这是一个集成开发环境(IDE),专为Java开发者设计,支持多种Web技术,包括Servlet、JSP和JavaBeans等。在MyEclipse中导入...

    六个有用的java过滤器

    在Java Web开发中,过滤器(Filter)是一种非常重要的技术,它能够对用户的请求和响应进行预处理或后处理,从而实现各种功能需求,例如设置缓存策略、登录验证、字符编码转换等。下面我们将详细探讨标题和描述中提到...

    java车辆租赁管理系统论文(20210806182603).pdf

    文档中提到了“ActionServletAction”和“ActionServletStructMVC”,显示了Servlet在Web应用中的关键作用。 综上所述,文档涉及到的知识点涵盖了Java语言的开发、集成开发环境的使用、JSP页面的开发、JavaBean的...

    HTTP_Status_404的几种解决方案

    例如,在Eclipse中,检查Project的Properties,MyEclipse,Web,Web Context-root,检查这个路径名称是否书写正确。最后,检查一下文件名称是否书写正确。 二、URL输入错误 解决方法:排查URL的书写是否正确,查看...

    南理工J2EE实验报告

    - **初始化参数配置**:在`web.xml`文件中为Servlet设置初始化参数,例如参数名`name`和`student_no`。 - **输出格式**:使用`PrintWriter`对象向客户端输出定制化的HTML页面,如`学号为*********的***同学,你好...

    Struts课程模块测试.doc

    在本“Struts课程模块测试”中,学生需要利用MyEclipse开发工具来实现一个基于Struts的Web项目,其核心功能是判断一个字符串是否为另一个字符串的前缀。 首先,创建一个新的Web项目“Prefix”,这是开发的基础。在...

Global site tag (gtag.js) - Google Analytics