搞了一个周,总算成功了,现分享给大家,请多指教!
所需软件:
myeclipse mysql数据库, Navicat for MySQL(sqlyog可视化软件可替换Navicat for MySQL) Tomact7.x
①:首先创建一个WebService project,我命名是zuoye2
如图:
②:将驱动(我用的是mysql-connector-java-5.0.8-bin)复制到创建的WebService project中WebRoot--WEB-INF-lib目录下,如图:
③:新建包xxxx.model,,,,,,新建类,如user(在user类中写需要的方法,并同时写set与get方法)
代码如下:
<span style="font-size:18px;">package zuoye2.model; public class user { private int username; private String password; private String code; public int getUsername() { return username; } public void setUsername(int username) { this.username = username; } public String getPassword() { return password; } public void setPassword(String password) { this.password = password; } public String getCode() { return code; } public void setCode() { this.code = code; } }</span>
④:新建包名 xxxx.util,,,,,新建类 如DBO(用于连接数据库)
代码如下:
package zuoye2.util; import java.sql.Connection; import java.sql.DriverManager; import com.mysql.jdbc.PreparedStatement; import com.mysql.jdbc.ResultSet; import com.mysql.jdbc.Statement; public class DBO { protected final static String driver = "com.mysql.jdbc.Driver"; protected final static String url = "jdbc:mysql://localhost:3306/建立数据库的名称" ; static { try{ Class.forName(driver);//加载驱动程序 }catch(Exception e) { e.printStackTrace(); } } public static Connection getConnection () { Connection conn = null; try{ String password; conn = (Connection)DriverManager.getConnection(url, “数据库用户名”,“数据库密码”); }catch(Exception e) { e.printStackTrace(); } return conn; } public static void close (Statement st,ResultSet rs,Connection conn) { try { if(st!=null) { st.close(); } if(rs!=null) { rs.close(); } if(conn!=null) { conn.close(); } }catch(Exception e) { e.printStackTrace(); } } public static void close(PreparedStatement pst,Connection conn) { try{ if(pst!=null) { pst.close(); } if(conn!=null) { conn.close(); } }catch(Exception e) { e.printStackTrace(); } } }⑤:新建包名 xxxx.service(用于写操作接口与实现接口的方法),,,,新建接口,如userManager (注意此处建的是接口Interface不是class),右击service包,点开新建,找到Interface,点击建立,命名userManager,代码如下:
package zuoye2.service; import zuoye2.model.user; public interface userManger { public boolean add(user u); public boolean addm(int username,String password); }⑥:在 xxxx.service包中新建类,如userManagerImpl(此类用于实现userManager接口中定义的方法)。
代码如下:
package zuoye2.service; import java.sql.Connection; import com.mysql.jdbc.PreparedStatement; import com.mysql.jdbc.ResultSet; import com.mysql.jdbc.Statement; import com.sun.tools.xjc.reader.xmlschema.bindinfo.BIConversion.User; import zuoye2.model.user; import zuoye2.util.DBO; public class userMangerImpl implements userManger{ public boolean add(user u){ boolean flag = false; Connection conn = null; PreparedStatement pst = null; try{ conn = DBO.getConnection(); String sql = "insert into a (username,password,code) value(1,22,333)"; pst=(PreparedStatement )conn.prepareStatement(sql); pst.setInt(1, u.getUsername()); pst.setString(2,u.getPassword()); pst.setString(3, u.getCode()); int row = pst.executeUpdate(); if(row>0) { flag = true; } } catch(Exception e) { e.printStackTrace(); }finally{ DBO.close(pst,conn); } return false; } public boolean addm (int username,String password) { boolean flag = false; Connection conn = null; Statement st = null; ResultSet rs = null; try{ conn = DBO.getConnection(); String sql = "select * from a where username="+username; st = (Statement) conn.createStatement(); rs = (ResultSet) st.executeQuery(sql); while(rs.next()) { if(rs.getString("password").equals(password)); { flag = true; } } }catch(Exception e) { e.printStackTrace(); }finally{ DBO.close(st,rs,conn); } return false; } }⑦:建立JSP页面,右点击WebRoot,新建JSP(Advaanced Templates) (PS :软件在新建工程时默认第一个JSP页面是index.jsp,),注意:在JSP页面中,标红出,确定是utf-8,若不是一定修改过来。
登录页面代码:
<%@ page language="java" import="java.util.*" pageEncoding="utf-8"%> <% String path = request.getContextPath(); String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/"; %> <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html> <head> <base href="<%=basePath%>"> <title>My JSP 'index.jsp' starting page</title> <meta http-equiv="pragma" content="no-cache"> <meta http-equiv="cache-control" content="no-cache"> <meta http-equiv="expires" content="0"> <meta http-equiv="keywords" content="keyword1,keyword2,keyword3"> <meta http-equiv="description" content="This is my page"> <!-- <link rel="stylesheet" type="text/css" href="styles.css"> --> </head> <body> <from action="addm" method="post" align="center"> <center><h1>网页登陆</h1></center> <center><b>用户名:</b><input type ="password" name="Username" style="width: 193px; "><br> <p></p> <b>密 码:</b><input type="password" name="Password" style="width: 193px; "><br> <br/> <font size="+1"> <p> <input name="submit" type="submit" class="button" style="width:200px; height:35px " value="登录" /> </p> <p> <font size="-1" color="#000099"><a href="zhuce.jsp">注册</a> </font> </p> </font> </center> </from> </body> </html>
<%@ page language="java" import="java.util.*" pageEncoding="utf-8"%> <% String path = request.getContextPath(); String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/"; %> <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html> <head> <base href="<%=basePath%>"> <title>My JSP 'zhuce.jsp' starting page</title> <meta http-equiv="pragma" content="no-cache"> <meta http-equiv="cache-control" content="no-cache"> <meta http-equiv="expires" content="0"> <meta http-equiv="keywords" content="keyword1,keyword2,keyword3"> <meta http-equiv="description" content="This is my page"> <!-- <link rel="stylesheet" type="text/css" href="styles.css"> --> </head> <body> <h1 align="center">新用户注册</h1> <hr/> <from action="add method="post" ><center> <b>用户名:</b><input name="Username" type="text" style="width: 193px"><br/> <p></p> <b>密 码:</b><input name="Password" type="password" style="width: 193px; "/><br/> <p></p> <b>验证码:</b><input name="Code" type="text" style="width:193px;"><br/> <p></p> <input type="submit" style="width:180px; height:35px "value="注册" target="0"/> <br/> </form> <br/> <a href="index.jsp">返回 </a> </center> </body> </html>
⑧:在JSP页面中,可在<body></body>中写form表单
<form action="xxxx"method="post" >,可参考步骤⑦中代码,
附xxx是对应的后台程序的servlet,名字要相同,否则表单数据无法提交到servlet中。
⑨:新建包xxx.servlet,,,,,新建与操作相对应的servlet如添加add,addm,
注意此处新建的文件名字是 servlet 不是class,servlet用于接收from表单中传来的数据。
建立方法:右点击包xxx.servlet,新建目录下,点击Servlet,可建立两个,一个命名add,一个命名addm,
add代码:
package zuoye2.servlet; import java.io.IOException; import java.io.PrintWriter; import javax.servlet.ServletException; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import zuoye2.model.user; import zuoye2.service.userManger; import zuoye2.service.userMangerImpl; public class add extends HttpServlet { public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { doPost(request, response); } public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { request.setCharacterEncoding("utf-8"); response.setCharacterEncoding("utf-8"); int username = Integer.parseInt(request.getParameter("Username")); String pswd = request.getParameter("Password"); String code = request.getParameter("Code"); userManger um =new userMangerImpl(); user u = new user(); u.setUsername(username); u.setPassword(pswd); u.setCode(); boolean flag= false; try { flag = um.add(u); if(flag==true){ response.sendRedirect("index.jsp"); } } catch (Exception e) { // TODO: handle exception e.printStackTrace(); } } }
package zuoye2.servlet; import java.io.IOException; import java.io.PrintWriter; import javax.servlet.ServletException; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import zuoye2.model.user; import zuoye2.service.userMangerImpl; public class addm extends HttpServlet { public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { request.setCharacterEncoding("utf-8"); response.setCharacterEncoding("utf-8"); int un = Integer.parseInt(request.getParameter("Username")); String pswd = request.getParameter("Password"); String checkcode = request.getParameter("Checkcode"); String pickcode = (String) request.getSession().getAttribute("piccode"); userMangerImpl um = new userMangerImpl(); user u = new user(); boolean flag= false; try { flag = um.addm(un, pswd); } catch (Exception e) { // TODO: handle exception e.printStackTrace(); } if(flag&&checkcode.equals(pickcode)){ response.sendRedirect("logchegngong.jsp"); } } }⑩:到此所有代码结束,接下来是运行,右点击创建的 WebService project,在此目录下找到Run As--MyEclipse Server Application,会弹出这个出口
选择Tomcat7.x,点击OK,运行!
另外,数据库连接代码,及测试类代码,博客空间里有,在这里就不多陈述了
最后,给大家分享一点体会,做这个一定要有耐心,也要足够的细心,我在写的时候,好几次导入包的时候,都导错了,造成很大麻烦,还好有人指导,