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表达式,只能显示结果,没有办法做if,for等操作,所有要和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>