欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

JSP核心内容

程序员文章站 2024-01-20 22:28:10
...

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架构

优缺点:携带方便、需要下载、频繁更新、数据再客户端上存储(不安全)、效率高、速度快