JSP AJAX之Form序列化登录体验
  TEZNKK3IfmPf 2023年11月15日 26 0
package web;


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 net.sf.json.JSONArray;

import bean.User;

public class LoginServlet extends HttpServlet {
	/**
	 * 
	 */
	private static final long serialVersionUID = 1L;
	@Override
	protected void doGet(HttpServletRequest req, HttpServletResponse resp)
			throws ServletException, IOException {
		PrintWriter out=resp.getWriter();
		String username=req.getParameter("username");
		String userpwd=req.getParameter("userpwd");
		String str="";
		User user=new User(username,userpwd);
		StringBuilder sb=new StringBuilder();
		sb.append("{");
		
		if(user!=null){
			//JSONArray  array=JSONArray.fromObject(user);
			//str=array.toString();
			sb.append("\"name\":\""+user.getUsername());
			sb.append("\",");
			sb.append("\"pwd\":\""+user.getPwd());
			sb.append("\"");
		}
		sb.append("}");
		System.out.println(sb);
		out.print(sb);
		out.close();
	}
	@Override
	protected void doPost(HttpServletRequest req, HttpServletResponse resp)
			throws ServletException, IOException {
		this.doGet(req, resp);
	}
	public static void main(String[] args) {
		User user=new User("a","b");
		String str="";
		if(user!=null){
			JSONArray  array=JSONArray.fromObject(user);
			str=array.toString();
		}
		System.out.println(str);
	}
}

前端页面



<%@ 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="https://www.ctyun.cn/portal/link.html?target=%26lt%3B%25%3DbasePath%25%26gt%3B">
    
    <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">
	<script type="text/javascript" src="js/jquery-1.8.3.min.js"></script>
	<script type="text/javascript">
		$(function(){
			//Ajax开始的时候,#tip元素显示;结束时,隐藏;
			$("#tip").ajaxStart(function(){
				$(this).show();
			}).ajaxStop(function(){
				$(this).hide();
			});
			//下面设置按钮的单击事件;
			$("#btnLogin").click(function(){
				//发送异步请求,设置参数;
				$.ajax({
					url:'LoginServlet',
					type:'post',
					data:$("#userForm").serialize(),//序列化form,右括号
					dataType:'json',
					success:function(data){
						//成功调用函数中,根据返回的json对象进行判断;
						//如果有name属性代表登录成功,否则为失败
						if(data.name){
							$(".divTitle").html("<span>登录成功</span>");
							$(".clsShow").html("欢迎你"+data.name+" "+"登录<br/>密码:"+data.pwd);
						}else{
							$("#divError").html("用户名或密码错误").show();//display:block
						}
					},
					error:function(xhr,msg){alert(msg);}
				});
			});
		});
	</script>
  </head>
  
  <body>
	<div class="divFrame">
		<div class="divTitle">
			<span>用户登录</span>
		</div>
		<div class="divContent">
			<div id="tip">全力登录中,请稍后...</div>
			<div class="clsShow">
				<div id="divError" class="divError"></div>
				<!-- 给Form设置一个ID -->
				<form id="userForm">
					<!-- 要序列化的表单字段必须有name属性 -->
					<div>
						名称:<input type="text" id="username" name="username" class="txt"/>
					</div>
					<div>
						密码:<input type="password" id="userpwd"name="userpwd"class="txt">
					</div>
					<div><!-- 最后一个div包含两个按钮 -->
						<input type="button"id="btnLogin" value="登录" class="btn"/>
						<input type="reset" id="btnReset"value="取消"class="btn"/>
					</div>
				</form>
			</div>
		</div>
			
	</div>
  </body>
</html>

JSP AJAX之Form序列化登录体验

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


【版权声明】本文内容来自摩杜云社区用户原创、第三方投稿、转载,内容版权归原作者所有。本网站的目的在于传递更多信息,不拥有版权,亦不承担相应法律责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@moduyun.com

  1. 分享:
最后一次编辑于 2023年11月15日 0

暂无评论

推荐阅读
  TEZNKK3IfmPf   2024年05月17日   45   0   0 JSpspring
  TEZNKK3IfmPf   2024年03月29日   111   0   0 字符串String
  TEZNKK3IfmPf   2024年03月22日   68   0   0 javaString
TEZNKK3IfmPf