简单的登陆注册页面

1.配置JDBC驱动连接数据库

2. 配置struts2框架

3. 利用1 2完成登录页面, 注意做到不耦合,即servlet Api和控制器完全脱离)

4. 利用1 2 制作注册页面,判断数据库是否存在注册账号,若存在,则提示账号存在,不存在则跳转注册成功页面

创建项目命名为chapter04 找到下载好的JDBC驱动jar文件复制粘贴到WebRoot-WEB-INF下的lib文件夹下,如图

2配置struts2框架

在网上下载struts2框架,打开struts2文件夹中的lib找到如下的jar文件 同样复制到WebRoot-WEB-INF下的lib文件夹下

接下来在web.xml中配置前端控制器,具体代码如下

<filter>
<filter-name>struts2</filter-name>
<filter-class> org.apache.struts2.dispatcher.filter.StrutsPrepareAndExecuteFilter</filter-class>
</filter>
<filter-mapping>
<filter-name>struts2</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>

最后在Struts.xml中配置Action分发给对应的JSP 代码如下

<struts>
<constant name="struts.devMode" value="true"></constant>
<package name="loginpkg" extends="struts-default" namespace="/">
<action name="succes" class="loginAction.login" method="logins">
<result name="succes">/succes.jsp</result>
<result name="defeat">/defeat.jsp</result>
</action>
<action name="register" class="loginAction.register" method="registers">
<result name="succes">/index.jsp</result>
<result name="defeat">/defeat.jsp</result>
</action>
</package>
</struts>

JSP页面的有 index.jsp register.jsp defeat.jsp success.jsp对应分别是首页 注册页面 失败跳转页面 成功登录页面这里只介绍index.jsp界面,其他比较简单自己写  index.jsp代码如下

<body>
<form action="/chapter04/succes">
用户:<input name="name" style="margin-left:10px;"><br>
密码:<input name="password" style="margin-left:10px;"><br>
<input type="submit" value="登录" style="position: absolute; left: 50px; top:60px;">
</form> <a style="position: absolute; left: 110px; top:60px;" href='/chapter04/register.jsp' >注册</a> </body>

在src下创建一个包 名为jdbcDAO ,在包内创建名为Conn的jdbc连接数据库类,代码如下;

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException; public class Conn {
public static Connection con;
public static Connection getconnection() {
try {
Class.forName("com.mysql.jdbc.Driver");
} catch (ClassNotFoundException e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
}
String url="jdbc:mysql://127.0.0.1:3306/userdb?characterEncoding=utf8";
String user="root";
String password="123456";
try {
con=DriverManager.getConnection(url, user, password);
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return con}

新建查询数据库功能类 read 代码如下

  

package jdbcDAO;

import java.sql.Connection;
import java.sql.ResultSet;
import java.sql.SQLException; import com.mysql.jdbc.PreparedStatement; public class read { public static boolean isCheck(String name,String password){
Connection con=Conn.getconnection();
String sql="select * from user";
PreparedStatement ps=null;
ResultSet rs=null;
try {
ps=(PreparedStatement) con.prepareStatement(sql);
rs=ps.executeQuery();
while(rs.next()){
String name1=rs.getString("name");
String password1=rs.getString("password");
if(name1.equals(name)&&password1.equals(password)){
return true; }
}
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return false; }
public static boolean isCheck1(String name){
Connection con=Conn.getconnection();
String sql="select * from user";
PreparedStatement ps=null;
ResultSet rs=null;
try {
ps=(PreparedStatement) con.prepareStatement(sql);
rs=ps.executeQuery();
while(rs.next()){
String name1=rs.getString("name"); if(name1.equals(name)){
return true; }
}
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return false; }
}

创建添加用户功能类 Add代码如下

package jdbcDAO;

import java.sql.Connection;
import java.sql.ResultSet;
import java.sql.SQLException; import com.mysql.jdbc.PreparedStatement; public class Add { public static boolean Adds(String name,String password){
Connection con=Conn.getconnection();
boolean falg=false;
PreparedStatement ps=null;
String sql="insert into user(name,password)values(?,?)";
try {
ps=(PreparedStatement) con.prepareStatement(sql);
ps.setString(1, name);
ps.setString(2, password);
int i=ps.executeUpdate();
if(i==1){
falg=true;
}
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return falg;

创建longAction包

在longAction包中创建两个类login和register类

login类代码如下

package loginAction;

import java.io.PrintWriter;
import java.util.HashMap;
import java.util.Map; import javax.servlet.Servlet; import org.apache.struts2.ServletActionContext; import com.opensymphony.xwork2.ActionContext;
import com.opensymphony.xwork2.ActionSupport;
import com.opensymphony.xwork2.config.entities.ActionConfig; import jdbcDAO.read;
import userBean.User; public class login extends ActionSupport {
private String name;
private String password;
private boolean falg=false; private static final long serialVersionUID = 1L; public String logins(){
ServletActionContext sac=null;
name=sac.getRequest().getParameter("name");
password=sac.getRequest().getParameter("password");
falg=read.isCheck(name, password);
if(falg){
return "succes"; }else{
return "defeat";
} }
}

Register类代码如下

package loginAction;

import org.apache.struts2.ServletActionContext;

import jdbcDAO.Add;
import jdbcDAO.read; public class register {
private boolean falg=false;
private String name;
private String password;
public String registers(){
ServletActionContext sac=null;
name=sac.getRequest().getParameter("name");
password=sac.getRequest().getParameter("password"); falg=read.isCheck1(name); //真
if(!falg){
falg=Add.Adds(name, password);
if(falg){ return "succes";
}
else{ return "defeat";
} }else{
return "defeat";
}
}
}

javaWeb登录注册页面的更多相关文章

  1. 登录注册页面html模版

    登录注册页面html模版 地址:http://download.csdn.net/detail/xiaosongaixiaoqian/5432033

  2. /*用户登录注册页面输入框的设置*/<span>的使用

    <!DOCTYPE html> /*用户登录注册页面输入框的设置*/ <html lang="en"> <head> <meta char ...

  3. php登录注册页面及加载

                           php注册界面                               <h1>注册页面</h1> <form acti ...

  4. php做登录注册页面及加载

    //SQL注入攻击 //1.过滤用户的输入 //2.使用预处理语句 //3.写代码的时候尽量避免 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1. ...

  5. node.js实现简单的登录注册页面

    首先需要新建四个文件 一个服务器js 一个保存数据的txt 一个登陆.一个注册页面html 1.注册页面 <!DOCTYPE html> <html lang="en&qu ...

  6. HTML登录注册页面简单实现

    github:传送门 , 码云: 传送门 效果参考: 登录页面,注册页面 使用了bootstrap,jQuery. 后端使用的CGI处理表单,存入MySQL数据库.(之后更新) 登录页面源码 < ...

  7. javaweb实现注册页面(数据库连接以及ajax验证)

    先放效果图 可实现js实时验证        可实现ajax实时验证注册信息是否存在   页面实现要求 1登录账号:要求由6到12位字母.数字.下划线组成,只有字母可以开头:(1分) 2登录密码:要求 ...

  8. php+ajax 登录注册页面

    主要是登录注册功能,前端后台验证没有什么,这个大家可以自己加上去,比如过滤啊,正则啊等 还是先放图吧 这是登录及注册界面  点击注册切换到注册界面,点击登录切换到登录界面 <!DOCTYPE h ...

  9. javaweb 登陆注册页面

    视图的数据修改,表中也修改引用工具类用<%@ page import=""%> <%@ page import="java.util.Date" ...

随机推荐

  1. git 提交新创建的文件

    git add -u:把所有tracked文件中被修改过或已删除文件的信息添加到索引库.它不会处理untracted的文件. 如果想将本地新创建的文件也提交上去,需执行如下操作:

  2. Laravel 开启跨域请求

    项目中用到了接口,外部调用的时候老是请求不到,本地请求却没问题,查了下说是因为跨域的问题.根据网上所说解决方法如下: 1.建立中间件Cors.php命令:php artisan make:middle ...

  3. 13.8.8 div块 居中

    <div style="border:1px solid blue;width:760px; height:410px; position:absolute; left:50%; to ...

  4. C语言程序,找出一个二维数组的鞍点。

    什么是鞍点????? 鞍点就是在一个二维数组中,某一个数在该行中最大,然而其在该列中又是最小的数,这样的数称为鞍点. 昨天突然在书上看到这样的一道题,就自己尝试着写了一个找出一个二维数组中的鞍点. 好 ...

  5. 简明PR教程

    注意:本文供培训使用且仅为第一版 作者也不打算继续更新 本篇文章最早是在为内部培训时所编写的文章 有些疏漏且没有进行校正等工作 我尽力用最简单通俗的语言给大家介绍PR的使用方法 简明PR教程 1.编辑 ...

  6. 针对程序员的podcast

    身为程序员们,必须要懂得合理的利用琐碎时间来提炼自身,或许上下班途中或骑行或徒步或...时,以下这些Podcasts对你有些许作用: The Hanselminutes podcast by Scot ...

  7. php 事务处理,ActiveMQ的发送消息,与处理消息

    可以通过链式发送->处理->发送...的方式处理类似事务型业务逻辑 比如 发送一个注册消息,消息队列处理完注册以后,紧接着发送一个新手优惠券赠送,赠送完再发一个其它后续逻辑处理的消息等待后 ...

  8. 2018.09.15 bzoj1977:次小生成树 Tree(次小生成树+树剖)

    传送门 一道比较综合的好题. 由于是求严格的次小生成树. 我们需要维护一条路径上的最小值和次小值. 其中最小值和次小值不能相同. 由于不喜欢倍增我选择了用树链剖分维护. 代码: #include< ...

  9. [转]一个CMake编译问题的解决过程

    问题的提出 公司的一个power-pc平台的产品,有个协议进行了修改,过程中出现了比较奇怪的情况.直接将修改后的动态库下载到设备上(原始设备是有文件系统和其他的依赖文件的,相当于部分更新应用),设备和 ...

  10. 【转】Paxos算法2-算法过程

    ——转自:{老码农的专栏} 1.编号处理 根据P2c ,proposer在提案前会先咨询acceptor查看其批准的最大的编号和value,再决定提交哪个value.之前我们一直强调更高编号的prop ...