html页面提交数据,利用servlet接收数据并写进xml中
生活随笔
收集整理的這篇文章主要介紹了
html页面提交数据,利用servlet接收数据并写进xml中
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
需求如下:
?* 需求
?* 完成用戶注冊效果。
?具體要求:
?1)用戶輸入信息:用戶名,密碼,確認密碼,性別,出生日期,電子郵箱,地址 。
?2)用戶輸入信息后,調用相關的XML操作類,把數據保存到XML文件中。
?3)保存成功后,顯示成功信息。
注冊頁面如下:
首頁html代碼如下: <!DOCTYPE html> <html><head><title>用戶注冊頁面</title><meta http-equiv="keywords" content="keyword1,keyword2,keyword3"><meta http-equiv="description" content="this is my page"><meta http-equiv="content-type" content="text/html; charset=UTF-8"><!--<link rel="stylesheet" type="text/css" href="./styles.css">--></head><body><form action="/day09/RegServlet" method="post"><h1>用戶登陸</h1><h2>請填寫注冊信息</h2>姓名:<input type="text" name="userName" ><br>密碼:<input type="password" name="userPassword" id="pwd"><br>確認密碼:<input type="password" name="again_userPassword" id="again_pwd" >(PS:如果兩次密碼匹配不正確,提交后重新注冊)<br>性別:<input type="radio" name="sex" value="男">男<input type="radio" name="sex" value="女">女<br>出身日期:<input type="text" name="age" ><br>電子郵箱:<input type="text" name="email"><br>地址:<select name="sheng"><option value="廣東">廣東</option><option value="廣西">廣西</option><option value="云南">云南</option><option value="其他">其他</option></select><br><input type="submit" value="提交"></form></body> </html> Servlet接收數據并處理: import java.io.FileOutputStream; import java.io.IOException; import java.io.PrintWriter;import javax.servlet.RequestDispatcher; import javax.servlet.ServletException; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import javax.swing.text.html.HTMLDocument.HTMLReader.FormAction;import org.dom4j.Document; import org.dom4j.DocumentException; import org.dom4j.Element; import org.dom4j.io.OutputFormat; import org.dom4j.io.SAXReader; import org.dom4j.io.SAXWriter; import org.dom4j.io.XMLWriter;public class RegServlet extends HttpServlet {public void doGet(HttpServletRequest request, HttpServletResponse response)throws ServletException, IOException {//設置編碼,但該函數在get方法中不適用,要自己對每個字符串轉換request.setCharacterEncoding("utf-8");String name = request.getParameter("userName");String userName = new String(name.getBytes("ISO-8859-1"),"utf-8");String password = request.getParameter("userPassword");String againPassword = request.getParameter("again_userPassword");String sex = request.getParameter("sex");String age = request.getParameter("age");String email = request.getParameter("email");String sheng = request.getParameter("sheng");//判斷兩次密碼是否相符if(!password.equals(againPassword)){System.out.println("兩次密碼不匹配,請重新輸入");response.getWriter().append("兩次密碼不匹配,請重新輸入");response.sendRedirect("/day09/Register.html"); //重定向到登陸頁面return;}SAXReader sr = new SAXReader();try {//讀取xml文檔Document doc = sr.read("D:/My Eclipse/day09/src/user.xml");Element root = doc.getRootElement(); //獲取根標簽 Element user = root.addElement("user");user.addElement("name").setText(name); //為標簽設置值user.addElement("password").setText(password);user.addElement("sex").setText(sex);user.addElement("age").setText(age);user.addElement("sheng").setText(sheng);XMLWriter sw = new XMLWriter(new FileOutputStream("D:/My Eclipse/day09/src/user.xml"),OutputFormat.createPrettyPrint() //以正常格式寫進文檔);sw.write(doc);sw.close();RequestDispatcher dispatcher =request.getRequestDispatcher("/succ.html"); //轉發dispatcher.forward(request, response);} catch (Exception e) {e.printStackTrace();}}public void doPost(HttpServletRequest request, HttpServletResponse response)throws ServletException, IOException {doGet(request,response);}}
xml文檔如下: <?xml version="1.0" encoding="UTF-8"?><Users> <user> <name>何勝</name> <password>2klj3</password> <sex>男</sex> <age>91年04月22日</age> <sheng>廣東</sheng> </user> <user><name>默默</name><password>987456</password><sex>男</sex><age>94年11月11日</age><sheng>云南</sheng></user> </Users>
?* 完成用戶注冊效果。
?具體要求:
?1)用戶輸入信息:用戶名,密碼,確認密碼,性別,出生日期,電子郵箱,地址 。
?2)用戶輸入信息后,調用相關的XML操作類,把數據保存到XML文件中。
?3)保存成功后,顯示成功信息。
注冊頁面如下:
首頁html代碼如下: <!DOCTYPE html> <html><head><title>用戶注冊頁面</title><meta http-equiv="keywords" content="keyword1,keyword2,keyword3"><meta http-equiv="description" content="this is my page"><meta http-equiv="content-type" content="text/html; charset=UTF-8"><!--<link rel="stylesheet" type="text/css" href="./styles.css">--></head><body><form action="/day09/RegServlet" method="post"><h1>用戶登陸</h1><h2>請填寫注冊信息</h2>姓名:<input type="text" name="userName" ><br>密碼:<input type="password" name="userPassword" id="pwd"><br>確認密碼:<input type="password" name="again_userPassword" id="again_pwd" >(PS:如果兩次密碼匹配不正確,提交后重新注冊)<br>性別:<input type="radio" name="sex" value="男">男<input type="radio" name="sex" value="女">女<br>出身日期:<input type="text" name="age" ><br>電子郵箱:<input type="text" name="email"><br>地址:<select name="sheng"><option value="廣東">廣東</option><option value="廣西">廣西</option><option value="云南">云南</option><option value="其他">其他</option></select><br><input type="submit" value="提交"></form></body> </html> Servlet接收數據并處理: import java.io.FileOutputStream; import java.io.IOException; import java.io.PrintWriter;import javax.servlet.RequestDispatcher; import javax.servlet.ServletException; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import javax.swing.text.html.HTMLDocument.HTMLReader.FormAction;import org.dom4j.Document; import org.dom4j.DocumentException; import org.dom4j.Element; import org.dom4j.io.OutputFormat; import org.dom4j.io.SAXReader; import org.dom4j.io.SAXWriter; import org.dom4j.io.XMLWriter;public class RegServlet extends HttpServlet {public void doGet(HttpServletRequest request, HttpServletResponse response)throws ServletException, IOException {//設置編碼,但該函數在get方法中不適用,要自己對每個字符串轉換request.setCharacterEncoding("utf-8");String name = request.getParameter("userName");String userName = new String(name.getBytes("ISO-8859-1"),"utf-8");String password = request.getParameter("userPassword");String againPassword = request.getParameter("again_userPassword");String sex = request.getParameter("sex");String age = request.getParameter("age");String email = request.getParameter("email");String sheng = request.getParameter("sheng");//判斷兩次密碼是否相符if(!password.equals(againPassword)){System.out.println("兩次密碼不匹配,請重新輸入");response.getWriter().append("兩次密碼不匹配,請重新輸入");response.sendRedirect("/day09/Register.html"); //重定向到登陸頁面return;}SAXReader sr = new SAXReader();try {//讀取xml文檔Document doc = sr.read("D:/My Eclipse/day09/src/user.xml");Element root = doc.getRootElement(); //獲取根標簽 Element user = root.addElement("user");user.addElement("name").setText(name); //為標簽設置值user.addElement("password").setText(password);user.addElement("sex").setText(sex);user.addElement("age").setText(age);user.addElement("sheng").setText(sheng);XMLWriter sw = new XMLWriter(new FileOutputStream("D:/My Eclipse/day09/src/user.xml"),OutputFormat.createPrettyPrint() //以正常格式寫進文檔);sw.write(doc);sw.close();RequestDispatcher dispatcher =request.getRequestDispatcher("/succ.html"); //轉發dispatcher.forward(request, response);} catch (Exception e) {e.printStackTrace();}}public void doPost(HttpServletRequest request, HttpServletResponse response)throws ServletException, IOException {doGet(request,response);}}
xml文檔如下: <?xml version="1.0" encoding="UTF-8"?><Users> <user> <name>何勝</name> <password>2klj3</password> <sex>男</sex> <age>91年04月22日</age> <sheng>廣東</sheng> </user> <user><name>默默</name><password>987456</password><sex>男</sex><age>94年11月11日</age><sheng>云南</sheng></user> </Users>
總結
以上是生活随笔為你收集整理的html页面提交数据,利用servlet接收数据并写进xml中的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 获取Http协议的请求行,请求头
- 下一篇: 路径问题(如何正确写出文件路径)