java web 简单的servlet+jsp编程例子,JSP+Servlet制作Java Web登录功能的全流程解析

0.新建web项目首先,在MyEclipse里新建javaweb项目,项目名为login。此时,项目中包含一个src文件夹和一个WebRoot文件夹,以及JavaWeb自带的JRE库文件夹和J2EE库文件夹。其中,在WebRoot文件夹下,包含了WEB-INF文件夹和一个index.jsp页面文件。

接下来,新建一个JSP页面,命名为login.jsp。

项目文件的结构如下:

3daec6de54936d5d11ef954c7708446c.png

1.设计login.jsp页面打开login.jsp页面后,修改第一行的代码为pageEncoding="utf-8",防止页面中文出现乱码。接下来在body部分定义form表单,用于用户输入用户名和密码。页面代码如下:

Stringpath=request.getContextPath();

StringbasePath=request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";

%>

-//W3C//DTDHTML4.01Transitional//EN">

">

登陆页面

用户名:

密码:

2.新建servlet文件接下来,在MyEclipse中新建一个loginServlet.java,并定义在包文件夹a下(包名自己决定)。文件夹目录如下:

05ae173d66fbf684e2f6f34f75a2d7cc.png

双击,打开loginServlet.java文件,在doPost方法内,通过request.getParameter()方法获取login页面的username和password,并通过response.sendRedirect()方法跳转到index.jsp页面。页面代码如下:

packagea;

importjava.io.IOException;

importjavax.servlet.ServletConfig;

importjavax.servlet.ServletException;

importjavax.servlet.ServletRequest;

importjavax.servlet.ServletResponse;

importjavax.servlet.http.HttpServletRequest;

importjavax.servlet.http.HttpServletResponse;

publicclassloginServletimplementsjavax.servlet.Servlet{

publicvoiddoPost(HttpServletRequestrequest,HttpServletResponseresponse)

throwsServletException,IOException{

StringuserName=request.getParameter("username");//取得用户名

Stringpassword=request.getParameter("password");//取得密码

response.sendRedirect("index.jsp");

}

publicvoiddestroy(){

}

publicServletConfiggetServletConfig(){

returnnull;

}

publicStringgetServletInfo(){

returnnull;

}

publicvoidinit(ServletConfigarg0)throwsServletException{

}

publicvoidservice(ServletRequestrequest,ServletResponseresponse)

throwsServletException,IOException{

HttpServletRequestrq=(HttpServletRequest)request;

HttpServletResponsers=(HttpServletResponse)response;

doPost(rq,rs);

}

}

3.配置servlet打开WEB-INF文件夹下的web.xml文件,通过设置这个网站的首页为login.jsp。接下来配置servlet。页面代码如下:

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">

LoginServlet

a.loginServlet

LoginServlet

/login

login.jsp

4.测试页面最后看看运行效果,选择运行,选择某个版本的tomcat启动。页面效果如下:

ed261a3a9092e0f8d635dd14ecd0d977.png

4732f6cc62c9f6dad407fd782ace8546.png

5.配置数据源

(1)创建数据库打开mysql数据库,新建数据库,此处命名为login数据库,在数据库中创建表login,并且设置username和password字段。数据库的设计表如下:

6ea2f13f6a88029c552f3a0ae2737b96.png

上图中的id作为主键,使得数据库的表至少符合第二范式的要求,其中username和password字段是login表内独有的字段,因此此表符合第三范式的要求。

接下来在login表中填入数据,此例的数据如下:

30e54f94ed27f0ed67078eba66b23691.png

(2)连接数据库在MyEclipse中连接数据库,此处采用加载JDBC驱动的方法连接数据库。首先下载mysql的驱动,接下来需要导入mysql的jar包到我们的项目中来,在包资源管理器中右键JRE系统库,选择构造路径-配置构建路径选项卡,弹出的Java构建路径选项卡中,通过添加外部JAR(X)按钮加载mysql.jar文件。

接下来,在项目中新建DBUtil.java文件,用于连接mysql数据库。此处略去连接数据库的原理,DBUtil.java文件的源代码如下,请更改源代码中的数据库名称和连入mysql的用户名密码等信息:

packagea;

importjava.sql.*;

publicclassDBUtil{

booleanbInited=false;

//加载驱动

publicvoidinitJDBC()throwsClassNotFoundException{

//加载MYSQLJDBC驱动程序

Class.forName("com.mysql.jdbc.Driver");

bInited=true;

System.out.println("SuccessloadingMysqlDriver!");

}

publicConnectiongetConnection()throwsClassNotFoundException,

SQLException{

if(!bInited){

initJDBC();

}

//连接URL为jdbc:mysql//服务器地址/数据库名

//后面的2个参数分别是登陆用户名和密码

Connectionconn=DriverManager.getConnection(

"jdbc:mysql://localhost:3306/数据库名","用户名","密码");

returnconn;

}

publicbooleanloginSuccess(StringuserName,Stringpassword){

booleanreturnValue=false;

Stringsql="SELECT*FROMlogin";

Connectionconn=null;

Statementstmt=null;

ResultSetrs=null;

try{

conn=getConnection();

stmt=conn.createStatement();

rs=stmt.executeQuery(sql);

while(rs.next()){

StringuserNameInDB=rs.getString("username");

StringpasswordInDB=rs.getString("password");

if(userNameInDB.equals(userName)&&

passwordInDB.equals(password)){

returnValue=true;

break;

}

}

}catch(ClassNotFoundExceptione){

e.printStackTrace();

}catch(SQLExceptione){

e.printStackTrace();

}

returnreturnValue;

}

}

上文中loginSuccess()方法内,用于在数据库中查找用户名和密码与传入参数username、password匹配的情况。一旦找到,则返回true结果。

(3)修改Servlet业务逻辑修改loginServlet.java文件的业务逻辑,在其中加入连接数据库的语句。其中,主要的页面跳转逻辑写着了doPost()方法内,修改后的doPost()方法如下:

publicvoiddoPost(HttpServletRequestrequest,HttpServletResponseresponse)

throwsServletException,IOException{

StringuserName=request.getParameter("username");//取得用户名

Stringpassword=request.getParameter("password");//取得密码

DBUtildb=newDBUtil();//构建数据库对象

booleancanLogin=db.loginSuccess(userName,password);

if(canLogin){//根据登陆情况,跳转页面

response.sendRedirect("index.jsp");

}else{

response.sendRedirect("login.jsp");

}

}

(4)测试页面调试后的页面效果如下:

04f086a8c6b99af62ef799539014880b.png

76f6d6f90413e71c8968ac694b26809a.png

您可能感兴趣的文章:IDEA新建javaWeb以及Servlet简单实现小结javaweb开发之servlet图形验证码功能的实现javaWeb使用servlet搭建服务器入门JavaWebServlet中url-pattern的使用javaweb中ajax请求后台servlet(实例)JavaWeb应用实例:用servlet实现oracle基本增删改查JavaWeb实现用户登录注册功能实例代码(基于Servlet+JSP+JavaBean模式)JavaWeb项目Servlet无法访问问题解决

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值