JSP实现数据传递和保存

JSP:
JSP 与 PHP、ASP、ASP.NET 等语言类似,运行在服务端的语言。
JSP(全称Java Server Pages)是由 Sun Microsystems 公司倡导和许多公司参与共同创建的一种使软件开发者可以响应客户端请求,而动态生成 HTML、XML 或其他格式文档的Web网页的技术标准。
JSP 技术是以 Java 语言作为脚本语言的,JSP 网页为整个服务器端的 Java 库单元提供了一个接口来服务于HTTP的应用程序。
JSP文件后缀名为 *.jsp 。
JSP开发的WEB应用可以跨平台使用,既可以运行在 Linux 上也能运行在 Windows 上。

案例:
requesDemo.jsp

<%@ page language="java" contentType="text/html; charset=UTF-8"
	pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
	<!-- method:传送方式--get方式  URL地址可以看到参数值,不支持大数据传值,有servlet的doGet执行
         post方式  URL地址看不到值,支持大数据,servlet的doPost方法处理 -->
	<form action="x" method="post">
		用户名:<input type="text" name="username"><br> 
		密码:<input type="password" name="password"><br> 
		性别:<input type="radio" name="sex" value="w"><input type="radio"
			name="sex" value="m" checked><br> 
		爱好:<input type="checkbox" name="love" value="1">篮球 <input
			type="checkbox" name="love" value="2" checked>足球 <input
			type="checkbox" name="love" value="3" checked>排球 <input
			type="submit" value="注册">
	</form>
</body>
</html>

AServlet.java

package cn.kgc.tangcco.chenxiangjian;

import java.io.IOException;

import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

@WebServlet("/x")
public class AServlet extends HttpServlet {
	private static final long serialVersionUID = 1L;

	@Override
	protected void doGet(HttpServletRequest request, HttpServletResponse response)
			throws ServletException, IOException {
		// 接收客户端发送过来的请求
		String username = request.getParameter("username");
		String password = request.getParameter("password");
		String sex = request.getParameter("sex");
		String[] love = request.getParameterValues("love");
		// 数据只是显示再控制台中
		System.out.println(username + "," + password + "," + sex + "," + love[0]);

	    //这种方式创建网页太麻烦了,书写html语言不方便
//		PrintWriter out=response.getWriter();
//		out.println("<html>");
//		out.println(username+","+password+","+sex+","+love[0]);
//		out.println("</html>");
//		out.close();
//		out.flush();

		/*用现成的网页requestDemoServer.jsp页面
		servlet-自动访问requestDemoServer.jsp页面用转发
		如何把servlet的数据分享给jsp页面? request数据的分享 */
		//给request对象添加一个属性或者是设置一个属性
		 request.setAttribute("name", username);
		 request.setAttribute("password",password);
		 request.setAttribute("sex", sex);
		 request.setAttribute("love", love[0]);
		 request.getRequestDispatcher("/requestDemoServer.jsp").forward(request, response);
		

		//创建Account对象,直接发送Accont对象
		//Account account = new Account(username, password, sex, love);
		//request.setAttribute("account", account);
		//request.getRequestDispatcher("/requestDemoServer1.jsp").forward(request, response);
	}

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

}

Account.java

package cn.kgc.tangcco.chenxiangjian;

import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;

@Data
@AllArgsConstructor
@NoArgsConstructor
public class Account {
	private String username;
	private String password;
	private String sex;
	private String[] love;
}

requestDemoServer.jsp

<%@ page language="java" contentType="text/html; charset=UTF-8"
	pageEncoding="UTF-8" isELIgnored="false"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
	<!--getParameter()返回的类型是String  getParameterValus()返回的是一个String[]-->
	<h3>显示数据(java)</h3>
	<%request.setCharacterEncoding("UTF-8");//设置客户端的编码格式是UTF-8
     response.setCharacterEncoding("UTF-8");//设置服务端编码格式是UTF-8
   %>
	用户名:<%=request.getAttribute("name") %><br> 
	密码:<%Object obj=request.getAttribute("password"); 
  		String psd=(String)obj;%>
	<%=psd %><br> 
	性别:<%=request.getAttribute("sex") %><br> 
	爱好:<%=request.getAttribute("love")%>
	<hr>
	<!-- el表达式,只能显示结果,没有办法做iffor等操作,所有要和jstl结合 -->
	<h3>显示数据(EL)</h3>
   	用户名:${param.username }<br>
	密码:${param.password }<br>
 	性别:${param.sex }<br>
          爱好:${paramValues.love[0] }
    	${paramValues.love[1] }
     	${paramValues.love[2] }
</body>
</html>

requestDemoServer1.jsp

<%@ page language="java" contentType="text/html; charset=UTF-8"
	pageEncoding="UTF-8" isELIgnored="false"%>
<%@ page import="cn.kgc.tangcco.chenxiangjian.*"%>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
	<!--getParameter()返回的类型是String  getParameterValus()返回的是一个String[]-->
	<h3>显示数据(java)</h3>
	<%request.setCharacterEncoding("UTF-8");//设置客户端的编码格式是UTF-8
     response.setCharacterEncoding("UTF-8");//设置服务端编码格式是UTF-8
   %>
	<% Object obj=request.getAttribute("account");
      Account account=(Account)obj;%>
	用户名:<%=account.getUsername() %><br> 
	密码:<%=account.getPassword() %><br>
	性别:<%=account.getSex()%><br> 
	爱好:<% String[] love=account.getLove();
	for(String l:love){
		out.write(l);%>
	<%
	}%>
	<h3>显示数据(EL和JSTL)</h3>
	<h3>显示数据(EL和JSTL)</h3>
	用户名:${requestScope.account.username }<br> 
	密码:${requestScope.account.password}<br> 
	性别:${requestScope.account.sex eq "w"?"女":"男"}<br> 
	爱好:<c:forEach items="${requestScope.account.love }" var="y">
 		 ${y==1?"篮球":(y==2?"足球":"排球")}
  </c:forEach>
</body>
</html>
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值