1.1 JSP介绍
jsp是一个动态网页标准技术,允许在前端的页面中嵌入Java代码,jsp的执行原理:先进行翻译,在进行编译,最后执行
语法 | 描述 |
---|---|
<%%> | 小脚本 |
<%=%> | 在网页中输出java变量 |
<%!%> | 在网页中定义方法 |
<%@%> | 指令 |
2.4 JSP的九大内置对象
对象名 | 描述 |
---|---|
out | 网页输出对象 |
page | 当前页对象 |
request | 请求对象 |
response | 响应对象 |
session | 会话 |
application | 全局对象(上下文对象) |
exception | 异常处理对象 |
pageContext | 页面上下文对象 |
config | 配置对象 |
jsp页面创建
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
<title>jsp</title>
</head>
<body>
hello jsp!!
<hr>
jsphaha
</body>
</html>
jsp显示当前日期
<%@ page import="java.util.Date,java.text.SimpleDateFormat" %>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
<title>Title</title>
</head>
<body>
<%
//在网页中显示当前的日期
Date date = new Date();
//对日期进行格式化操作
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
String showTime = sdf.format(date);
%>
当前时间为:<%=showTime%>
</body>
</html>
request对象
用户发送的所有的请求都是通过request对象实现,request中携带了请求的地址、参数等等
方法名 | 描述 |
---|---|
setCharacterEncoding(String encoding) | 设置请求编码 |
getParameter(String key) | 设置参数 |
getRequestDispatch(String path).forward(req,resp) | 请求转发 |
中文乱码处理方案
//中文乱码处理方案1(get请求):new String(uname.getBytes("ISO-8859-1"),"utf-8")
示例:uname = new String(uname.getBytes("ISO-8859-1"),"utf-8");
//中文乱码处理方案2(post请求)
示例:request.setCharacterEncoding("utf-8")
//中文乱码处理方案3(修改tomcat配置)
<Connector port="8080" protocol="HTTP/1.1"
connectionTimeout="20000"
redirectPort="8443"
URLEncoding="utf-8"/>
请求转发
将该请求转发给其他控制层处理,用户发送的一次请求,进行了多次转发
例如:小张需要一万块,自己没钱,他向支付宝借了一万块,但支付宝本身是没钱的,但是支付宝向银行借了一万块给了小张
//判断用户信息是否正确,转发到对应的页面
if("admin".equals(uname)){
//请求转发到success.jsp
request.getRequestDispatcher("success.jsp").forward(request,response);
}else{
request.getRequestDispatcher("error.jsp").forward(request,response);
}
request特点
1.一次请求,多次转发
2.请求转发后,地址栏中的地址不发生改变
3.request 请求转发可以携带参数
通过request对象设置参数
//设置参数
request.setAttribute("msg","登录成功");
//获取参数
Object msg = request.getAttribute("msg");
request中getParameter()和getAttribute()区别
<%
//getParameter()用于获取表单或直接在地址栏中拼接的参数
String uname = request.getParameter("uname");
//getAttribute()只能获取通过setAttribute()设置的参数
Object msg = request.getAttribute("msg");
%>
resonse对象
response作为服务端响应给客户端的过程,仅仅只是将服务端的请求重定向给了另一个地址
例如:小张向小王借一万,小王说我没有,你可以向支付宝借,小张就向支付宝借了一万
<%
String uname = request.getParameter("uname");
String pwd = request.getParameter("pwd");
if("admin".equals(uname)){
//重定向
response.sendRedirect("success.jsp");
}else{
response.sendRedirect("error.jsp");
}
%>
方法名 | 描述 |
---|---|
sendRedirect(url) | 重定向 |
response的特点
1,至少两次请求
2,地址栏中的地址会发生变化
3.不能携带参数
软件系统架构
B/S架构:browser and Server 浏览器与服务器架构模式,例如:天猫、京东、后台管理类,简单点说:在网页端运行的都是B/S架构
优缺点:携带不方便、不需要下载、不需要频繁更新、数据都在服务器上(安全)
C/S架构:Client and Server 客户端与服务器架构模式,例如:微信、钉钉、QQ、王者等,简单点说:手机上运行的APP都是C/S架构
优缺点:携带方便、需要下载、频繁更新、数据再客户端上存储(不安全)、效率高、速度快