1.如何在EclipseEE中搭建MavenWeb项目
2.如何构建Servlet,如何注册Servlet
3.Request对象、Response对象的使用和Out对象的使用
4.如果使用Servlet+JDBC实现登录和注册效果
4.1在Mysql数据库中创建User表
Create Table userinfo
userid INT Primary Key AUTO_INCREMENT,
username Varchar(20) NOT NULL,
userpass Varchar(20) NOT NULL,
usersex Char(3), ----3代表字节数
);
Select * From userinfo;
Insert into userinfo VALUES(NULL,'admin','123','男');
Insert into userinfo VALUES(NULL,'team','123','女');
4.2创建Maven项目
4.3创建Web页面
---reg.jsp
引用jquery
<script type="text/javascript" src=js/jquery-3.2.1.min.js></script>
<script>
var nameB=false;//用于验证两次密码是否一样
function checkName(){
var name = $("#username").val();
//上一行等价于这一行document.getElementById("username").value;
//光标一离开就会发送post请求,检测账号是否存在
alert(name);
//$.post("url","参数列表{键值对}",回调函数)
$.post("check",{"name",name},function(data)){
if(data==1){//1能用
nameB = true;
$("#nameMessage").html("账号可以使用!");
$("#nameMessage").css("color","green");
}else{
//不能用
nameB = false;
$("#nameMessage").html("此账号已存在!");
$("#nameMessage").css("color","red");
}
}
}
function tosend(){
if(nameB==true){
return true;
}else{
return false;
}
}
</script>
<form action="reg" method="post">
光标离开事件:οnblur="checkName()" 必填项:required="required"
账号:<input type="text" name="userName" required="required" οnblur="checkName()"/><br>
<span id="nameMessage"></span>
密码:<input type="password" name="userPass1" required="required"/><br>
确认密码:<input type="password" name="userPass2" required="required"/><br>
性别:<input type="radio" name="userSex" value="boy" checked="checked"/>男
<input type="radio" name="userSex" value="girl"/>女<br>
<input type="submit" value="注册新用户" οnclick="return tosend()"/>
</from>
---login.jsp
<form action="" method="post">
账号:<input type="text" name="userName" required="required"/><br> ---必填项
密码:<input type="password" name="userPass1" required="required"/><br>
<input type="submit" value="登录"/>
</from>
4.4创建包
面向对象:一个人干一件事
面向过程:一个人干一群事
bean:模拟数据库中的表,封装的实体类
int userId;
String userName;
String userPass;
String userSex;
biz:业务层
public class UserBiz{
private UserInfoDAO uidao = new UserInfoDAO();
public void save(UserInfo ui){
uidao.save(ui);
}
public boolean checkName(String name){
return uidao.chackName(name);
}
}
dao:增、删、改、查
DAO(Data Access Objects)数据访问对象是第一个面向对象的接口
public class UserInfoDAO{
private Connection conn = null;
private PreparedStatement ps = null;
private ResultSet rs = null;
public void save(UserInfo ui){
conn=DBManager.getConnection();
String sql = "insert into userinfo values(null,?,?,?)"
ps = conn.prepareStatement(sql);
---选中抓异常 Alt + Shift +Z
try{
ps.setString(1,ui.getUserName());
ps.setString(2,ui.getUserName());
ps.setString(3,ui.getUserName());
ps.executeUpdate();
}catch(SQLException e){
System.out.println(e.getMessage());
}finally{
//不管是否有异常都关闭连接
DBManager.closeConnection(conn);
}
}
public boolean cheackName(String name){
boolean b = false;
conn = DBManager.getConnection();
String sql = "Select * from username Where username=?";
ps = conn.prepareStatement(sql);
ps.setString(1,name);
rs = ps.executeQuery();//获取查询的结果
if(rs.next()){
b=false; //有值 不能用
}else{
b=true; //无值 可以用
}
return b;
}
}
db:连接数据库,打开连接,关闭连接
在普通的web项目中,在WEB-INF文件夹下创建lib文件夹
放入mysql的jar
public class DBManager{
//打开连接
public static Connection getConnection(){
try{
Class.formName(Driver.class.getName());
}catch(){
System.out.println(e.getMessage());
}
String url = "jdbc:mysql://localhost:3306/guan?charactorEncoding=utf8";乱码
String user = "root";
String password="2485177";
Connection conn = null;
try{
conn = DBManager.getConnection(url,user,password);
}catch(SQLException e){
System.out.println(e.getMessage());
}
return conn;
}
//关闭连接
public static void closeConnection(Connection conn){
try{
conn.close();
}catch(SQLException e){
System.out.println(e.getMessage());
}
}
}
controller:控制器,接受页面的信息,并对其做出响应
---需要Servlet的依赖
public class UserController extends HttpServlet{
private UserBiz ub = new UserBiz();
//有密码 用Post请求
@Override
public void dopost(HttpServletRequest request,
HTTPServletResponse response){
//设置请求过来的编码集
request.setCharacterEncoding("utf-8");//只能处理Post请求
String userName = request.getParameter("userName");
String userPass = request.getParameter("userPass");
String userSex = request.getParameter("userSex");
UserInfo ui = new UserInfo();
ui.setUserName(userName);
ui.setUserPass(userpass);
ui.setUserSex(userSex);
ub.save(ui);
response.sendRedirect("login.jsp")
}
}
public class CheckNameController extends HttpServlet{
private UserBiz ub = new UserBiz();
//有密码 用Post请求
@Override
public void dopost(HttpServletRequest request,
HTTPServletResponse response){
//设置请求过来的编码集
request.setCharacterEncoding("utf-8");//只能处理Post请求
String name = request.getParameter("name");
System.out.println(name);
boolean b = ub.chackName(name);
if(b){
out.println(1);//真 有值 不能用
}else{
out.println(0);//假 无值 可以用
}
}
}
4.5在web.xml中注册Servlet
<servlet>
<servlet-name>reg</servlet-name>
<servlet-class>UserController的路径<servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>reg<servlet-name>
<url-pattern>/reg<url-pattern>
<servlet-mapping>
<servlet>
<servlet-name>chackName</servlet-name>
<servlet-class>chackNameController的路径<servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>chackName<servlet-name>
<url-pattern>/checkName<url-pattern>
<servlet-mapping>
5.使用AJAX+jQuery实现了账户唯一操作(扩展)
工具:
1.MyEclipse 2014安装成功+注册好
2.MySQL安装好,SQLYog安装好
修改MySql的编码集:开始--->MySQL文件夹--->打开文件位置
--->打开my.ini文件--->修改
default-character-set=utf8
character-set-server=utf8
修改完之后从启Mysql
--->右键我的电脑--->选择管理--->服务和应用程序
--->服务--->找到MySql从新启动
3.修改JDK版本
右键项目名--->打开属性--->选择Java Build Pass--->Libraries下的JRE System Library[J2SE-1.5]
--->点击右边的Edit按钮--选择JRE System Library[J2SE-1.6]
4.在jquery官网下载后,放到webapp下创建一个js的文件夹
明天:
Filter和Listener
提升Servlet
2.如何构建Servlet,如何注册Servlet
3.Request对象、Response对象的使用和Out对象的使用
4.如果使用Servlet+JDBC实现登录和注册效果
4.1在Mysql数据库中创建User表
Create Table userinfo
userid INT Primary Key AUTO_INCREMENT,
username Varchar(20) NOT NULL,
userpass Varchar(20) NOT NULL,
usersex Char(3), ----3代表字节数
);
Select * From userinfo;
Insert into userinfo VALUES(NULL,'admin','123','男');
Insert into userinfo VALUES(NULL,'team','123','女');
4.2创建Maven项目
4.3创建Web页面
---reg.jsp
引用jquery
<script type="text/javascript" src=js/jquery-3.2.1.min.js></script>
<script>
var nameB=false;//用于验证两次密码是否一样
function checkName(){
var name = $("#username").val();
//上一行等价于这一行document.getElementById("username").value;
//光标一离开就会发送post请求,检测账号是否存在
alert(name);
//$.post("url","参数列表{键值对}",回调函数)
$.post("check",{"name",name},function(data)){
if(data==1){//1能用
nameB = true;
$("#nameMessage").html("账号可以使用!");
$("#nameMessage").css("color","green");
}else{
//不能用
nameB = false;
$("#nameMessage").html("此账号已存在!");
$("#nameMessage").css("color","red");
}
}
}
function tosend(){
if(nameB==true){
return true;
}else{
return false;
}
}
</script>
<form action="reg" method="post">
光标离开事件:οnblur="checkName()" 必填项:required="required"
账号:<input type="text" name="userName" required="required" οnblur="checkName()"/><br>
<span id="nameMessage"></span>
密码:<input type="password" name="userPass1" required="required"/><br>
确认密码:<input type="password" name="userPass2" required="required"/><br>
性别:<input type="radio" name="userSex" value="boy" checked="checked"/>男
<input type="radio" name="userSex" value="girl"/>女<br>
<input type="submit" value="注册新用户" οnclick="return tosend()"/>
</from>
---login.jsp
<form action="" method="post">
账号:<input type="text" name="userName" required="required"/><br> ---必填项
密码:<input type="password" name="userPass1" required="required"/><br>
<input type="submit" value="登录"/>
</from>
4.4创建包
面向对象:一个人干一件事
面向过程:一个人干一群事
bean:模拟数据库中的表,封装的实体类
int userId;
String userName;
String userPass;
String userSex;
biz:业务层
public class UserBiz{
private UserInfoDAO uidao = new UserInfoDAO();
public void save(UserInfo ui){
uidao.save(ui);
}
public boolean checkName(String name){
return uidao.chackName(name);
}
}
dao:增、删、改、查
DAO(Data Access Objects)数据访问对象是第一个面向对象的接口
public class UserInfoDAO{
private Connection conn = null;
private PreparedStatement ps = null;
private ResultSet rs = null;
public void save(UserInfo ui){
conn=DBManager.getConnection();
String sql = "insert into userinfo values(null,?,?,?)"
ps = conn.prepareStatement(sql);
---选中抓异常 Alt + Shift +Z
try{
ps.setString(1,ui.getUserName());
ps.setString(2,ui.getUserName());
ps.setString(3,ui.getUserName());
ps.executeUpdate();
}catch(SQLException e){
System.out.println(e.getMessage());
}finally{
//不管是否有异常都关闭连接
DBManager.closeConnection(conn);
}
}
public boolean cheackName(String name){
boolean b = false;
conn = DBManager.getConnection();
String sql = "Select * from username Where username=?";
ps = conn.prepareStatement(sql);
ps.setString(1,name);
rs = ps.executeQuery();//获取查询的结果
if(rs.next()){
b=false; //有值 不能用
}else{
b=true; //无值 可以用
}
return b;
}
}
db:连接数据库,打开连接,关闭连接
在普通的web项目中,在WEB-INF文件夹下创建lib文件夹
放入mysql的jar
public class DBManager{
//打开连接
public static Connection getConnection(){
try{
Class.formName(Driver.class.getName());
}catch(){
System.out.println(e.getMessage());
}
String url = "jdbc:mysql://localhost:3306/guan?charactorEncoding=utf8";乱码
String user = "root";
String password="2485177";
Connection conn = null;
try{
conn = DBManager.getConnection(url,user,password);
}catch(SQLException e){
System.out.println(e.getMessage());
}
return conn;
}
//关闭连接
public static void closeConnection(Connection conn){
try{
conn.close();
}catch(SQLException e){
System.out.println(e.getMessage());
}
}
}
controller:控制器,接受页面的信息,并对其做出响应
---需要Servlet的依赖
public class UserController extends HttpServlet{
private UserBiz ub = new UserBiz();
//有密码 用Post请求
@Override
public void dopost(HttpServletRequest request,
HTTPServletResponse response){
//设置请求过来的编码集
request.setCharacterEncoding("utf-8");//只能处理Post请求
String userName = request.getParameter("userName");
String userPass = request.getParameter("userPass");
String userSex = request.getParameter("userSex");
UserInfo ui = new UserInfo();
ui.setUserName(userName);
ui.setUserPass(userpass);
ui.setUserSex(userSex);
ub.save(ui);
response.sendRedirect("login.jsp")
}
}
public class CheckNameController extends HttpServlet{
private UserBiz ub = new UserBiz();
//有密码 用Post请求
@Override
public void dopost(HttpServletRequest request,
HTTPServletResponse response){
//设置请求过来的编码集
request.setCharacterEncoding("utf-8");//只能处理Post请求
String name = request.getParameter("name");
System.out.println(name);
boolean b = ub.chackName(name);
if(b){
out.println(1);//真 有值 不能用
}else{
out.println(0);//假 无值 可以用
}
}
}
4.5在web.xml中注册Servlet
<servlet>
<servlet-name>reg</servlet-name>
<servlet-class>UserController的路径<servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>reg<servlet-name>
<url-pattern>/reg<url-pattern>
<servlet-mapping>
<servlet>
<servlet-name>chackName</servlet-name>
<servlet-class>chackNameController的路径<servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>chackName<servlet-name>
<url-pattern>/checkName<url-pattern>
<servlet-mapping>
5.使用AJAX+jQuery实现了账户唯一操作(扩展)
工具:
1.MyEclipse 2014安装成功+注册好
2.MySQL安装好,SQLYog安装好
修改MySql的编码集:开始--->MySQL文件夹--->打开文件位置
--->打开my.ini文件--->修改
default-character-set=utf8
character-set-server=utf8
修改完之后从启Mysql
--->右键我的电脑--->选择管理--->服务和应用程序
--->服务--->找到MySql从新启动
3.修改JDK版本
右键项目名--->打开属性--->选择Java Build Pass--->Libraries下的JRE System Library[J2SE-1.5]
--->点击右边的Edit按钮--选择JRE System Library[J2SE-1.6]
4.在jquery官网下载后,放到webapp下创建一个js的文件夹
明天:
Filter和Listener
提升Servlet