1. 程式人生 > >註冊登入案例MVC

註冊登入案例MVC

JSP顯示

/reg/reg.jsp

<%@ page language="java" contentType="text/html; charset=UTF-8"

    pageEncoding="UTF-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Insert title here</title>

<script type="text/javascript">
// 完成校驗
function run
(){
// 使用者名稱不能為空
var username = document.form1.username.value;
if(username == "" || username.length == 0){
alert("使用者名稱不能為空");
return false;
}
// 密碼不能為空,不能少於6位
var password = document.form1.password.value;
if(password == "" || password.length < 6){
alert("密碼至少6位");
return false;
}
// 確認密碼和密碼一致
var repassword = document.form1
.repassword.value;
if(repassword == "" || repassword != password){
alert("兩次密碼不一致");
return false;
}
// 暱稱不能為空
var nickname = document.form1.nickname.value;
if(nickname == "" || nickname.length == 0){
alert("暱稱不能為空");
return false;
}
// 郵箱正確的郵箱格式/[email protected]+\.[a-zA-Z]{2,4}$/
var email = document.form1.email.value;
if(!/
[email protected]
+\.[a-zA-Z]{2,4}$/.test(email)){
alert("郵箱格式不正確");
return false;
}
// 可以提交了
}
</script>
</head>
<body>
<font color="red">${ requestScope.msg }</font>

<form name="form1" action="/day13_mvc/reg" method="POST" onsubmit="return run()" >
<table border="1" width="60%">
<tr>
<td>
使用者名稱
</td>
<td>
<input type="text" name="username" />
</td>
</tr>
<tr>
<td>
密碼
</td>
<td>
<input type="password" name="password" />
</td>
</tr>
<tr>
<td>
確認密碼
</td>
<td>
<input type="password" name="repassword" />
</td>
</tr>
<tr>
<td>
暱稱
</td>
<td>
<input type="text" name="nickname" />
</td>
</tr>
<tr>
<td>
郵箱
</td>
<td>
<input type="text" name="email" />
</td>
</tr>
<tr>
<td>
驗證碼
</td>
<td>
<input type="text" name="code" />
<a href="#" onclick="show(); return false;"><img id="imgId" src="${ pageContext.request.contextPath }/checkcode"></a>
</td>
</tr>
<tr>
<td colspan="2">
<input type="submit" value="註冊"/>
</td>
</tr>
</table>
</form>
</body>
<script type="text/javascript">
function show(){
var image = document.getElementById("imgId");
image.src = "${pageContext.request.contextPath}/checkcode?"+new Date().getTime();
}
</script>

</html>

驗證碼獲取

/**
 * 驗證碼
 * @author Administrator
 *
 */
public class CheckcodeServlet extends HttpServlet {
private static final long serialVersionUID = -1954096202081365387L;
public void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
/**
* 在記憶體中生成圖片(紙),沒有設定背景顏色,畫填充的矩形,並且和紙的大小相同,矩形有顏色。
* 獲取筆的物件(設定顏色,設定字型,畫字串,畫矩形)
* 先準備好資料,隨機生成4個字元,把字元畫到紙上
* 畫干擾線
* 把記憶體中的圖片輸出到客戶端上
*/
int width = 120;
int height = 30;
// 在記憶體中生成圖片
BufferedImage image = new BufferedImage(width, height, BufferedImage.TYPE_INT_RGB);
// 先獲取畫筆物件
Graphics2D g = (Graphics2D) image.getGraphics();
// 設定灰色
g.setColor(Color.GRAY);
// 畫填充的矩形
g.fillRect(0, 0, width, height);
// 設定顏色
g.setColor(Color.BLUE);
// 畫邊框
g.drawRect(0, 0, width-1, height-1);
// 準備資料,隨機獲取4個字元
// String words = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz1234567890";
String words = "\u7684\u4e00\u4e86\u662f\u6211\u4e0d\u5728\u4eba\u4eec\u6709\u6765\u4ed6\u8fd9\u4e0a\u7740\u4e2a\u5730\u5230\u5927\u91cc\u8bf4\u5c31\u53bb\u5b50\u5f97\u4e5f\u548c\u90a3\u8981\u4e0b\u770b\u5929\u65f6\u8fc7\u51fa\u5c0f\u4e48\u8d77\u4f60\u90fd\u628a\u597d\u8fd8\u591a\u6ca1\u4e3a\u53c8\u53ef\u5bb6\u5b66\u53ea\u4ee5\u4e3b\u4f1a\u6837\u5e74\u60f3\u751f\u540c\u8001\u4e2d\u5341\u4ece\u81ea\u9762\u524d\u5934\u9053\u5b83\u540e\u7136\u8d70\u5f88\u50cf\u89c1\u4e24\u7528\u5979\u56fd\u52a8\u8fdb\u6210\u56de\u4ec0\u8fb9\u4f5c\u5bf9\u5f00\u800c\u5df1\u4e9b\u73b0\u5c71\u6c11\u5019\u7ecf\u53d1\u5de5\u5411\u4e8b\u547d\u7ed9\u957f\u6c34\u51e0\u4e49\u4e09\u58f0\u4e8e\u9ad8\u624b\u77e5\u7406\u773c\u5fd7\u70b9\u5fc3\u6218\u4e8c\u95ee\u4f46\u8eab\u65b9\u5b9e\u5403\u505a\u53eb\u5f53\u4f4f\u542c\u9769\u6253\u5462\u771f\u5168\u624d\u56db\u5df2\u6240\u654c\u4e4b\u6700\u5149\u4ea7\u60c5\u8def\u5206\u603b\u6761\u767d\u8bdd\u4e1c\u5e2d\u6b21\u4eb2\u5982\u88ab\u82b1\u53e3\u653e\u513f\u5e38\u6c14\u4e94\u7b2c\u4f7f\u5199\u519b\u5427\u6587\u8fd0\u518d\u679c\u600e\u5b9a\u8bb8\u5feb\u660e\u884c\u56e0\u522b\u98de\u5916\u6811\u7269\u6d3b\u90e8\u95e8\u65e0\u5f80\u8239\u671b\u65b0\u5e26\u961f\u5148\u529b\u5b8c\u5374\u7ad9\u4ee3\u5458\u673a\u66f4\u4e5d\u60a8\u6bcf\u98ce\u7ea7\u8ddf\u7b11\u554a\u5b69\u4e07\u5c11\u76f4\u610f\u591c\u6bd4\u9636\u8fde\u8f66\u91cd\u4fbf\u6597\u9a6c\u54ea\u5316\u592a\u6307\u53d8\u793e\u4f3c\u58eb\u8005\u5e72\u77f3\u6ee1\u65e5\u51b3\u767e\u539f\u62ff\u7fa4\u7a76\u5404\u516d\u672c\u601d\u89e3\u7acb\u6cb3\u6751\u516b\u96be\u65e9\u8bba\u5417\u6839\u5171\u8ba9\u76f8\u7814\u4eca\u5176\u4e66\u5750\u63a5\u5e94\u5173\u4fe1\u89c9\u6b65\u53cd\u5904\u8bb0\u5c06\u5343\u627e\u4e89\u9886\u6216\u5e08\u7ed3\u5757\u8dd1\u8c01\u8349\u8d8a\u5b57\u52a0\u811a\u7d27\u7231\u7b49\u4e60\u9635\u6015\u6708\u9752\u534a\u706b\u6cd5\u9898\u5efa\u8d76\u4f4d\u5531\u6d77\u4e03\u5973\u4efb\u4ef6\u611f\u51c6\u5f20\u56e2\u5c4b\u79bb\u8272\u8138\u7247\u79d1\u5012\u775b\u5229\u4e16\u521a\u4e14\u7531\u9001\u5207\u661f\u5bfc\u665a\u8868\u591f\u6574\u8ba4\u54cd\u96ea\u6d41\u672a\u573a\u8be5\u5e76\u5e95\u6df1\u523b\u5e73\u4f1f\u5fd9\u63d0\u786e\u8fd1\u4eae\u8f7b\u8bb2\u519c\u53e4\u9ed1\u544a\u754c\u62c9\u540d\u5440\u571f\u6e05\u9633\u7167\u529e\u53f2\u6539\u5386\u8f6c\u753b\u9020\u5634\u6b64\u6cbb\u5317\u5fc5\u670d\u96e8\u7a7f\u5185\u8bc6\u9a8c\u4f20\u4e1a\u83dc\u722c\u7761\u5174\u5f62\u91cf\u54b1\u89c2\u82e6\u4f53\u4f17\u901a\u51b2\u5408\u7834\u53cb\u5ea6\u672f\u996d\u516c\u65c1\u623f\u6781\u5357\u67aa\u8bfb\u6c99\u5c81\u7ebf\u91ce\u575a\u7a7a\u6536\u7b97\u81f3\u653f\u57ce\u52b3\u843d\u94b1\u7279\u56f4\u5f1f\u80dc\u6559\u70ed\u5c55\u5305\u6b4c\u7c7b\u6e10\u5f3a\u6570\u4e61\u547c\u6027\u97f3\u7b54\u54e5\u9645\u65e7\u795e\u5ea7\u7ae0\u5e2e\u5566\u53d7\u7cfb\u4ee4\u8df3\u975e\u4f55\u725b\u53d6\u5165\u5cb8\u6562\u6389\u5ffd\u79cd\u88c5\u9876\u6025\u6797\u505c\u606f\u53e5\u533a\u8863\u822c\u62a5\u53f6\u538b\u6162\u53d4\u80cc\u7ec6";
// 生成存入session中
StringBuffer sb = new StringBuffer();
// 設定顏色
g.setColor(Color.YELLOW);
// 設定字型
g.setFont(new Font("隸書", Font.BOLD, 20));
Random random = new Random();
int x = 20;
int y = 20;
for(int i=0;i<4;i++){
// void rotate(double theta, double x, double y)  
// theta 弧度
// hudu = jiaodu * Math.PI / 180;
// 獲取正負30之間的角度
int jiaodu = random.nextInt(60)-30;
double hudu = jiaodu * Math.PI / 180;
g.rotate(hudu, x, y);
// 獲取下標
int index = random.nextInt(words.length());
// 返回指定下標位置的字元,隨機獲取下標
char ch = words.charAt(index);
// 新增字元
sb.append(ch);
// 寫字串
g.drawString(""+ch, x, y);
g.rotate(-hudu, x, y);
x += 20;
}
// 存入session中
request.getSession().setAttribute("sessCode", sb.toString());
// 設定顏色
g.setColor(Color.GREEN);
int x1,x2,y1,y2;
// 畫干擾線
for(int i=0;i<4;i++){
x1 = random.nextInt(width);
y1 = random.nextInt(height);
x2 = random.nextInt(width);
y2 = random.nextInt(height);
g.drawLine(x1, y1, x2, y2);
}
// 輸出到客戶端
ImageIO.write(image, "jpg", response.getOutputStream());
}
public void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
doGet(request, response);
}
public static void main(String[] args) {
System.out.println("\u9fa5");
System.out.println("\u9fa4");
System.out.println("\u9fa3");
System.out.println("\u9fa2");
}

}

控制器Servlet 

/**
 * 完成註冊(控制器)
 * @author Administrator
 *
 */
public class RegServlet extends HttpServlet {
private static final long serialVersionUID = -6807725510424430537L;
public void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
/**
* 1.獲取引數列表
* 2.需要把資料封裝到JavaBean中,使用BeanUtils開發包
* 3.處理資料,呼叫另一個JavaBean中
* 4.把結果返回到頁面中
*/
// 設定request緩衝區的編碼(post)
request.setCharacterEncoding("UTF-8");
// 設定字元中文亂碼
response.setContentType("text/html;charset=UTF-8");
// 獲取session中的驗證碼
String sessCode = (String) request.getSession().getAttribute("sessCode");
// 獲取頁面的驗證碼
String reqCode = request.getParameter("code");
// 判斷
if(reqCode == null || !reqCode.equals(sessCode)){
// 轉發到註冊頁面
request.setAttribute("msg", "驗證碼輸入錯誤");
request.getRequestDispatcher("/reg/reg.jsp").forward(request, response);
return;
}
// 獲取請求頭
String referer = request.getHeader("referer");
if(referer == null || !referer.endsWith("reg.jsp")){
// 做處理
// 獲取虛擬路徑
// request獲取客戶機的資訊(重定向)
response.sendRedirect(request.getContextPath()+"/reg/reg.jsp"); // 加專案
return;
}
// 獲取引數列表
Map<String, String []> map = request.getParameterMap();
// 獲取引數列表
User user = new User();
// 封裝資料(BeanUtils)
try {
BeanUtils.populate(user, map);
// 處理註冊業務的類
RegService reg = new RegService();
// 完成註冊
int flag = reg.regUser(user);
if(flag == MyXmlUtil.NAMEEXIST){
// 使用者名稱重名了
// 轉發註冊頁面
request.setAttribute("msg", "使用者名稱已存在");
// 轉發
request.getRequestDispatcher("/reg/reg.jsp").forward(request, response);
}else if(flag == MyXmlUtil.EMAILEXIST){
// 郵箱重名了
request.setAttribute("msg", "郵箱已存在");
// 轉發
request.getRequestDispatcher("/reg/reg.jsp").forward(request, response);
}else if(flag == MyXmlUtil.SUCCESS){
// 註冊成功
// 跳轉登陸頁面
// 註冊成功
response.getWriter().write("註冊成功了");
}
} catch (Exception e) {
e.printStackTrace();
}
}
public void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
doGet(request, response);
}

}

封裝資料javabean

/**
 * User物件
 * @author Administrator
 *
 */
public class User {
private String username;
private String password;
private String nickname;
private String email;
public String getUsername() {
return username;
}
public void setUsername(String username) {
this.username = username;
}
public String getPassword() {
return password;
}
public void setPassword(String password) {
this.password = password;
}
public String getNickname() {
return nickname;
}
public void setNickname(String nickname) {
this.nickname = nickname;
}
public String getEmail() {
return email;
}
public void setEmail(String email) {
this.email = email;
}

}

簡易資料庫

/**
 * XML的工具類(DOM4J的知識)
 * @author Administrator
 *
 */
public class MyXmlUtil {
// 資料庫的路徑
public static final String PATH = "d:\\user.xml";
// 使用者名稱重名
public static final int NAMEEXIST = 1;
// 郵箱重名
public static final int EMAILEXIST = 2;
// 註冊成功
public static final int SUCCESS = 0;
// 獲取Documen物件
public static Document getDocument(String path) throws Exception{
// 解析器物件
SAXReader reader = new SAXReader();
// 解析
return reader.read(path);
}
// 回寫(XMLWriter)
public static void writeXml(Document document,String path) throws Exception{
// 格式
OutputFormat format = OutputFormat.createPrettyPrint();
// 設定編碼
format.setEncoding("UTF-8");
XMLWriter writer = new XMLWriter(new FileOutputStream(path), format);
// 進行回寫
writer.write(document);
// 關閉流
writer.close();
}
}
/**
 * 操作XML
 * @author Administrator
 *
 */
public class RegService {
/**
* 操作XML,完成註冊。XML中進行資料的新增。
* 使用者名稱不能重名
* 郵箱是否重名
* @param user
* @return
* @throws Exception 
*/
public int regUser(User user) throws Exception{
// 使用工具類,操作XML
Document document = MyXmlUtil.getDocument(MyXmlUtil.PATH);
// 解析XML
// 獲取根節點(查文件)
Element root = document.getRootElement();
// 校驗使用者名稱或者郵箱是否重名
List<Element> uList = root.elements("user");
// 判斷
if(uList != null || uList.size() > 0){
// XML中查詢,和傳入過來做對比,如果相同,重名了,返回
// 從XML中獲取的
for (Element u : uList) {
// 獲取username節點的文字內容
// u.element("username").getText();
String xmlName = u.elementText("username");
// 獲取傳入進來的User 的名稱
String uName = user.getUsername();
// 重名了,返回1
if(xmlName.equals(uName)){
return MyXmlUtil.NAMEEXIST;
}
// 獲取xmlEamil
String xmlEmail = u.elementText("email");
String uEamil = user.getEmail();
if(xmlEmail.equals(uEamil)){
return MyXmlUtil.EMAILEXIST;
}
}
}
// 需要在XML新增節點
Element uElement = root.addElement("user");
// 新增子節點
uElement.addElement("username").setText(user.getUsername());
uElement.addElement("password").setText(user.getPassword());
uElement.addElement("nickname").setText(user.getNickname());
uElement.addElement("email").setText(user.getEmail());
// 回寫
MyXmlUtil.writeXml(document, MyXmlUtil.PATH);
// 返回1 使用者名稱重名了,返回是2郵箱重名,返回0註冊成功
return MyXmlUtil.SUCCESS;
}
/**
* 使用者登陸
* @param user
* @return
* @throws Exception 
*/
public User loginUser(User user) throws Exception {
// 獲取XML中使用者名稱和密碼的文字內容
Document document = MyXmlUtil.getDocument(MyXmlUtil.PATH);
// 獲取根節點
Element root = document.getRootElement();
// 先獲取User的節點
List<Element> uList = root.elements("user");
if(uList != null && uList.size() > 0){
for (Element u : uList) {
// 獲取username和password的文字內容
String xmlName = u.elementText("username");
String uName = user.getUsername();
String xmlPass = u.elementText("password");
String uPass = user.getPassword();
// 可以登陸
if(xmlName.equals(uName) && xmlPass.equals(uPass)){
// 把暱稱和郵箱存入到user物件中
user.setNickname(u.elementText("nickname"));
user.setEmail(u.elementText("email"));
return user;
}
}
}
return null;
}
}

登入

/reg/login.jsp

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<%@ taglib uri="http://java.sun.com/jsp/jstl/functions"  prefix="fn"%>    
<%@ taglib uri="http://www.itcast.cn/1110/myfn" prefix="myfn" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Insert title here</title>
</head>
<body onload="run()">
<h4>登陸頁面</h4>
<%
// 獲取cookie%E9%83%AD%E7%BE%8E%E7%BE%8E
// URLDecoder.decode(username, "UTF-8");
// 編寫自定義EL函式
%>
<!--${ cookie.username.value }  / %E9%83%AD%E7%BE%8E%E7%BE%8E -->
<!-- 切分     -->
<form action="${pageContext.request.contextPath }/login" method="POST">
<!--  輸入姓名:<input type="text" name="username" value="${ cookie.username.value }"/><br/>-->
<!--輸入姓名:<input type="text" name="username" value="${ myfn:decode(cookie.username.value) }"/><br/>-->
輸入姓名:<input type="text" id="nameId" name="username" /><br/>
輸入密碼:<input type="password" name="password" /><br/>
<input type="checkbox" name="remember" value="remember" />記住使用者名稱<br/>
<input type="submit" value="登陸"/>
</form>
</body>
<script type="text/javascript">
function run(){
// 接收cookie的值
var str = "${ cookie.username.value }";
// 解碼
var newstr = decodeURI(str);
// 賦值給文字框
document.getElementById("nameId").value = newstr;
}
</script>
</html>
tld配置
<?xml version="1.0" encoding="UTF-8"?>
<taglib version="2.0" xmlns="http://java.sun.com/xml/ns/j2ee"
 xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
 xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-jsptaglibrary_2_0.xsd">
 <tlib-version>1.0</tlib-version>
 <short-name>myfn</short-name>
 <uri>http://www.itcast.cn/1110/myfn</uri>
 <function>
 <name>decode</name>
 <function-class>cn.itcast.utils.MyEl</function-class>
 <function-signature>java.lang.String myDecode(java.lang.String)</function-signature>
 </function>

 </taglib>

public class MyEl {

// %E9%83%AD%E7%BE%8E%E7%BE%8E
public static String myDecode(String str){
try {
return URLDecoder.decode(str, "UTF-8");
} catch (UnsupportedEncodingException e) {
e.printStackTrace();
}
return "";
}
}

/**
 * 登陸
 * @author Administrator
 *
 */
public class LoginServlet extends HttpServlet {
private static final long serialVersionUID = -5933952794357976456L;
public void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
/**
* 獲取引數列表
* 封裝資料
* 呼叫JavaBean完成業務
* 轉發到Servlet
*/
request.setCharacterEncoding("UTF-8");
// 獲取引數列表
Map<String, String []> map = request.getParameterMap();
// 建立User物件
User user = new User();
// 封裝資料
try {
BeanUtils.populate(user, map);
// 完成登陸的功能
RegService service = new RegService();
// 登陸功能
User succUser = service.loginUser(user);
// 如果succUser是null,說明登陸不成功
if(succUser == null){
// 登陸不成功,轉發到登陸頁面
request.setAttribute("msg", "使用者名稱或者密碼不正確");
request.getRequestDispatcher("/reg/login.jsp").forward(request, response);
}else{
// 完成記住使用者名稱的功能
// 獲取複選框的內容
String remember = request.getParameter("remember");
// 判斷
if(remember != null && "remember".equals(remember)){

String username = succUser.getUsername();
// 先把中文的名稱編碼
username = URLEncoder.encode(username, "UTF-8");
// 解碼
// URLDecoder.decode(s, "UTF-8");  
// System.out.println(username);
// 記住使用者名稱,儲存到cookie中 aaa-123456
Cookie cookie = new Cookie("username", username);
// 設定有效時間
cookie.setMaxAge(60*60);
// 設定有效路徑
cookie.setPath("/");
// 回寫cookie
response.addCookie(cookie);
}
// 登陸成功,跳轉到某個頁面,使用者資訊顯示到頁面上
// 重定向到成功的頁面
// 顯示使用者的資訊
request.getSession().setAttribute("succUser", succUser);
response.sendRedirect(request.getContextPath()+"/reg/success.jsp");
}
} catch (Exception e) {
e.printStackTrace();

}
public void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
doGet(request, response);
}

}

/reg/success.jsp

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Insert title here</title>
</head>
<body>
<h3>暱稱:${ succUser.nickname }</h3>
<h3>郵箱:${succUser.email }</h3>
<hr/>
</body>
</html>

相關推薦

註冊登入案例MVC

JSP顯示:/reg/reg.jsp<%@ page language="java" contentType="text/html; charset=UTF-8"    pageEncoding="UTF-8"%><!DOCTYPE html PUBLIC

MVC模型和JavaWeb模型入門_簡單的註冊登入案例

很久沒有寫部落格了,主要的原因還是因為懶惰…前些日子上課講到了一個簡單的註冊登入案例; 雖然案例本身需求並不複雜,但因為老師將MVC的基本思想和JavaWeb的分層模型思想加入到裡面,讓這個小案例有了很多可以咀嚼的地方,特此做個記錄; 小生水平有限,不足之處

javaEE之MVC三層架構及註冊登入案例

一、MVC之三層架構 1、Servlet和JSP(模型1:JSP+javabean) 最佳實踐:Servlet處理邏輯,把結果封裝到域物件中(ServletRequest、HttpSession、ServletContext),轉發給JSP,讓JSP只負責顯示。 資料的封裝

JAVA 入門學習之路-註冊登入案例

新建專案,結構如下: 新建資料庫連線工具類: /** * 資料庫連線工具類 * Created by Chao on 2016/12/3. */ public class DBUtils { private static Strin

使用者註冊登入案例分析以及簡單實現

使用者註冊登入案例 功能分析 本案例主要是使用者註冊和登入功能。根據使用者輸入的使用者名稱和密碼判斷使用者能否登入進去。使用者的資訊儲存在userInformation.txt檔案中。 分析順序如下: 1. 分包和建類 2. 實現功能 分

spring boot mvc初學 註冊登入發表文章

1、springboot專案搭建 File new project選擇spring initializr,如下圖   點選下一步, 輸入name,group,aftifact等選項,別的預設即可, 點選下一步 選擇相應的web、jpa、等需要的東西。點選下一步, 構建完成。會

JS實現註冊登入傳送簡訊驗證碼動態顯示60S倒計時完整案例

通常在web專案中都會遇到賬戶註冊或者忘記密碼時需要傳送簡訊驗證碼的功能,雖然說這種功能很常見,但是實際開發過程中很多人還會遇到不少坑。筆者經過整理把最近專案中的用到的這個傳送簡訊驗證碼動態顯示60S倒計時的完整實現過程分享給廣大開發者朋友。 1、頁面傳送簡訊驗證碼的表

javaWeb 比較完整簡單的mvc 註冊登入Demo

這裡選擇在f盤建一個xml檔案當作資料庫.最後再把這個資料庫換成真實的mysql實體類package cn.itcast.user.domain; /** * 實體類 * @author Administrator * */ public class User {

java web筆記——軟體三層結構&MVC模式實現註冊登陸案例

<學習筆記> Servlet+JSP+JavaBean(MVC)模式適合開發較複雜的web應用,在這種模式下,servlet負責處理使用者請求,jsp負責資料顯示,javaBean負責封裝資料,各個模組之間層次清晰。 軟體三層結構為Web層、業務

JavaWeb-使用者登入案例

使用者登入需要和資料庫進行匹配. 這是資料庫中的表. id userame password email 1 Tom 1234 [email protected]

Java 小練習—使用者註冊登入(含異常處理 )

需求: A: 請選擇要使用的功能 1. 登入 請輸入賬號 請輸入密碼 呼叫 B 的方法獲取登入結果 登入成功/登入失敗 2. 註冊 請輸入賬號 請輸入密碼 呼叫 B 的方法獲取註冊結果 註冊成功/註冊失敗

註冊登入和商品管理的例子

區域性變數快捷鍵設定 自動售貨系統架構圖 使用者登入註冊系統開發流程-思路 public interface UserDao{ public User findUserByName(String name); } 1/先定義service層的介面 思考: 看servi

Django+Jquery+Ajax+驗證碼登入案例

1,建立專案test04 2,建立應用app為booktest 3,註冊應用booktest 作用讓建立的應用執行起來 4,在專案根目錄下建立模板templates目錄 作用就是存放html檔案 在專案的settings.py檔

網站註冊登入大概步驟(網站是怎樣通過cookie記住使用者的)

註冊: 將使用者填寫的賬號和密碼儲存在資料庫中(其中包括去重操作和密碼加密操作) 登入: 將使用者填寫的賬號和密碼與資料庫進行比對,如果資料庫中存在同樣的賬號和密碼,那麼在響應頭中設定Set-Cookie值,標誌該使用者是通過登入步驟進入首頁的 這樣每次使用者訪問同源網址時請求頭中都

註冊登入(設計圖片驗證碼)

圖片驗證碼的實現 (註冊、下單、支付均有涉及) 1. 目的: 1) 驗證操作者是否是人,不是機器。 2) 防止表單重複提交。每次提交要判斷驗證碼的正確與否 生成驗證碼的要點: 1) 使用java程式碼生成圖片物件 2) 使用Random生成隨機字串 3) 將圖片物件用 Imag

使用.net 操作 微信公眾平臺 —— 第三方登入 —— .net MVC

目錄   1. 使用.net 操作 微信公眾平臺 —— 接入   2. 使用.net 操作 微信公眾平臺 —— 生成微信選單   3. 使用.net 操作 微信公眾平臺 —— 接收並回複用戶訊息   4. 使用.n

網頁註冊登入資料庫(六)

<%@ page language="java" import="java.sql.*" contentType="text/html;charset=utf-8"%> <html>   <head>     

網頁註冊登入資料庫(五)

<%@ page language="java" import="java.util.*" contentType="text/html;charset=utf-8"%> <html>   <head> <title>登陸成功&l

網頁註冊登入(三)

登入檢驗 <%@ page language="java" import="java.sql.*" contentType="text/html;charset=utf-8"%> <html>   <head>  

網頁註冊登入資料庫(二)

註冊頁面 <%@ page language="java" import="java.util.*" contentType="text/html;charset=utf-8"%> <html>   <head>