JSP AJAX之Form序列化登录体验

举报
tea_year 发表于 2021/12/30 00:45:00 2021/12/30
【摘要】 package web; import java.io.IOException;import java.io.PrintWriter; import javax.servlet.ServletException;import javax.servlet.http.HttpServlet;import javax.servlet.htt...

  
  1. package web;
  2. import java.io.IOException;
  3. import java.io.PrintWriter;
  4. import javax.servlet.ServletException;
  5. import javax.servlet.http.HttpServlet;
  6. import javax.servlet.http.HttpServletRequest;
  7. import javax.servlet.http.HttpServletResponse;
  8. import net.sf.json.JSONArray;
  9. import bean.User;
  10. public class LoginServlet extends HttpServlet {
  11. /**
  12. *
  13. */
  14. private static final long serialVersionUID = 1L;
  15. @Override
  16. protected void doGet(HttpServletRequest req, HttpServletResponse resp)
  17. throws ServletException, IOException {
  18. PrintWriter out=resp.getWriter();
  19. String username=req.getParameter("username");
  20. String userpwd=req.getParameter("userpwd");
  21. String str="";
  22. User user=new User(username,userpwd);
  23. StringBuilder sb=new StringBuilder();
  24. sb.append("{");
  25. if(user!=null){
  26. //JSONArray array=JSONArray.fromObject(user);
  27. //str=array.toString();
  28. sb.append("\"name\":\""+user.getUsername());
  29. sb.append("\",");
  30. sb.append("\"pwd\":\""+user.getPwd());
  31. sb.append("\"");
  32. }
  33. sb.append("}");
  34. System.out.println(sb);
  35. out.print(sb);
  36. out.close();
  37. }
  38. @Override
  39. protected void doPost(HttpServletRequest req, HttpServletResponse resp)
  40. throws ServletException, IOException {
  41. this.doGet(req, resp);
  42. }
  43. public static void main(String[] args) {
  44. User user=new User("a","b");
  45. String str="";
  46. if(user!=null){
  47. JSONArray array=JSONArray.fromObject(user);
  48. str=array.toString();
  49. }
  50. System.out.println(str);
  51. }
  52. }

前端页面



  
  1. <%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
  2. <%
  3. String path = request.getContextPath();
  4. String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
  5. %>
  6. <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
  7. <html>
  8. <head>
  9. <base href="<%=basePath%>">
  10. <title>My JSP 'index.jsp' starting page</title>
  11. <meta http-equiv="pragma" content="no-cache">
  12. <meta http-equiv="cache-control" content="no-cache">
  13. <meta http-equiv="expires" content="0">
  14. <meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
  15. <meta http-equiv="description" content="This is my page">
  16. <script type="text/javascript" src="js/jquery-1.8.3.min.js"></script>
  17. <script type="text/javascript">
  18. $(function(){
  19. //Ajax开始的时候,#tip元素显示;结束时,隐藏;
  20. $("#tip").ajaxStart(function(){
  21. $(this).show();
  22. }).ajaxStop(function(){
  23. $(this).hide();
  24. });
  25. //下面设置按钮的单击事件;
  26. $("#btnLogin").click(function(){
  27. //发送异步请求,设置参数;
  28. $.ajax({
  29. url:'LoginServlet',
  30. type:'post',
  31. data:$("#userForm").serialize(),//序列化form,右括号
  32. dataType:'json',
  33. success:function(data){
  34. //成功调用函数中,根据返回的json对象进行判断;
  35. //如果有name属性代表登录成功,否则为失败
  36. if(data.name){
  37. $(".divTitle").html("<span>登录成功</span>");
  38. $(".clsShow").html("欢迎你"+data.name+" "+"登录<br/>密码:"+data.pwd);
  39. }else{
  40. $("#divError").html("用户名或密码错误").show();//display:block
  41. }
  42. },
  43. error:function(xhr,msg){alert(msg);}
  44. });
  45. });
  46. });
  47. </script>
  48. </head>
  49. <body>
  50. <div class="divFrame">
  51. <div class="divTitle">
  52. <span>用户登录</span>
  53. </div>
  54. <div class="divContent">
  55. <div id="tip">全力登录中,请稍后...</div>
  56. <div class="clsShow">
  57. <div id="divError" class="divError"></div>
  58. <!-- 给Form设置一个ID -->
  59. <form id="userForm">
  60. <!-- 要序列化的表单字段必须有name属性 -->
  61. <div>
  62. 名称:<input type="text" id="username" name="username" class="txt"/>
  63. </div>
  64. <div>
  65. 密码:<input type="password" id="userpwd"name="userpwd"class="txt">
  66. </div>
  67. <div><!-- 最后一个div包含两个按钮 -->
  68. <input type="button"id="btnLogin" value="登录" class="btn"/>
  69. <input type="reset" id="btnReset"value="取消"class="btn"/>
  70. </div>
  71. </form>
  72. </div>
  73. </div>
  74. </div>
  75. </body>
  76. </html>

针对json数据的处理,大家可以使用json-lib.jar包或gson包,将实体类对象转化为字符串进行回传

文章来源: aaaedu.blog.csdn.net,作者:tea_year,版权归原作者所有,如需转载,请联系作者。

原文链接:aaaedu.blog.csdn.net/article/details/53311439

【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。