简单的登陆注册页面

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. 类方法 isAssignableFrom、instanceof 和 asSubclass

    类方法 isAssignableFrom.instanceof 和 asSubclass Spring 框架 CollectionFactory 的 asEnumType 方法使用 "类.a ...

  2. JavaScript 的数据类型及其检测

    JavaScript 有几种类型的值? Javascript 有两种数据类型,分别是基本数据类型和引用数据类型.其中基本数据类型包括 Undefined.Null.Boolean.Number.Str ...

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

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

  4. 服务器的日志一直报Packet for query is too large (7632997 > 4194304). You can change this value on the server by setting the max_allowed_packet' variable.的解决方法

    服务器的日志一直报Packet for query is too large (7632997 > 4194304). You can change this value on the serv ...

  5. 201521123035-个人作业4——alpha阶段个人总结

    个人总结 在alpha 结束之后, 每位同学写一篇个人博客, 总结自己的alpha 过程: 第一部分 类别 具体技能和面试问题 现在的回答(大三) 语言 最拿手的计算机语言是一?,代码量多少?(偏前端 ...

  6. asp.net Mvc 模型绑定项目过多会导致页面运行时间卡

    asp.net Mvc 模型绑定项目过多会导致页面运行时间卡的问题. 解决方式就是采用ModelView方式进行精简,已减少模型绑定及验证的时间.

  7. EasyUi Grid以POST方式传送参数绑定

    function LoadList() {            $("#TableContainer").datagrid({                url: '/HM/ ...

  8. HTML5+规范:Webview(管理应用窗口界面)

    一.知识点 Webview模块管理应用窗口界面,实现多窗口的逻辑控制管理操作.通过plus.webview可获取应用界面管理对象. 1.方法 1.1.all: 获取所有Webview窗口 Array[ ...

  9. 零开始:NetCore项目权限管理系统:登录授权

    喜欢NetCore的朋友,欢迎加群QQ:86594082 源码地址:https://github.com/feiyit/SoaProJect 管理员的模型 namespace FytSoa.Core. ...

  10. 命名空间“Microsoft”中不存在类型或命名空间名“Reporting”(是否缺少程序集引用?)

    IDE升级到VS2017之后,出现了如题所示的报错,重新引用DLL的方法如下: 1.右键引用,选择添加引用. 2.左侧选择浏览,下面点击浏览按钮. 3.分别添加Microsoft.ReportView ...