B/S + JSP

内容回顾:B/S

servlet

实质:在服务器端运行的Java类

如何使用:1、继承HttpServlet

2、覆盖doGet()或doPost()

用户管理:

登录(查)、注册(增)、修改密码(改)、删除(删)

增删改查:SQL语句+?(个数及含义要定义好)

借助DBOper类完成具体工作

3、用户会话跟踪:Cookie和Session

JSP:JSP是一种基于Java的服务器端技术,其目的是简化建立和管理动态网站的工作

1、JSP特点:

servlet编程比较复杂,

  • 简单快捷:JSP在原来的HTML中,通过添加java程序片段,并通过标签技术的使用从而简化了页面的开发。
  • 动态内容的生成和显示相分离:使用HTML或XML来设计页面,使用JSP标签或者脚本来生成页面上的动态内容,
  • 组件重用:可重用的JavaBean组件能够在多个JSP之间共享,加速了总体开发过程,方便维护和优化。
  • 易于部署、升级和维护:JSP容器能够对JSP的修改进行检测,自动翻译和编译修改后的JSP文件,无须手动编译。

2、JSP与Servlet的比较

  • JSP是一种服务器端脚本语言,它降低了Servlet的使用难度
    • JSP在本质上就是Servlet
  • JSP提供了Servlet能够实现的所有功能,实际上是首先被翻译成Servlet后才能编译并运行的,所以JSP几乎拥有Servlet的所有优点
  • 与Servlet相比,JSP更加适合制作动态页面,因为单纯使用Servlet开发动态页面是相当繁琐的。
  • JSP和Servlet的区别如下:

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-5LtjhJVj-1666711391768)(../../../../../typora/Images/image-20221025194241148.png)]

3、第一个JSP程序

<%@ page language="java" contentType="text/html; charset=GBK"%>
自己编译器里面的:<%@ page language="java" contentType="text/html; charset=utf-8"
    pageEncoding="utf-8"%>

4、JSP执行原理

(1)客户端发出请求(request)

(2)容器接收到请求后检索对应的JSP页面,如果该 JSP页面是第一次被请求,则容器将其 翻译成一个Java文件,即Servlet

3、容器将翻译后的Servlet源代码 编译形成字节码,即.class文件,并加载到内存执行

4、最后把执行结果即响应(response) 发送到客户端

在这里插入图片描述

**JSP再次执行原理:**当这个JSP页面再次被请求时,只要该JSP文件没有发生过改动,JSP容器就直接调用已装载的字节码文件,而不会再执行翻译和编译步骤,这样大大提高了服务器性能。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-6XAsKTKE-1666711391771)(../../../../../typora/Images/image-20221025211057534.png)]

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-vwRPPy1M-1666711391772)(../../../../../typora/Images/image-20221025210621456.png)]

5、JSP指令

JSP指令用来向JSP容器提供编译信息。指令 并不向客户端产生任何输出,所有指令只在 当前页面有效

<%@指令名 属性="值" 属性="值"%>

常用的指令:page指令、include指令、taglib指令

page指令简单用法:

<%@ page language="java" contentType="text/html; charset=GBK"%

language属性用来设置JSP页面中的脚本语言,目前此属性值只能是“java”;

contentType属性用来设置页面类型及编码,“text/html; charset=gbk”指明了JSP页面文本是html格式并且采用GBK中文字符集。

6、JSP声明

JSP声明用于在JSP页面中定义变量和方法JSP声明通过“<%! %>”定义。

一个JSP页面可以有多个声明,每个声明中可以同时定义多个变量或方法。每个JSP声明只在当前JSP页面中有效。

JSP声明的语法格式如下:

<%!声明的内容%>

7、JSP表达式

JSP表达式用于将Java表达式的运行结果输出在页面中JSP表达式通过“<%= %>”定义。

表达式后不能加分号,%和=之间不能有空格

<%!
	//全局方法和变量
	private String str = "全局变量";
	void setStrParam(String param) {
		str = param;
	}
%>

JSP被翻译成Servlet,而JSP声明中 变量与方法实际上就是定义在翻译成的Servlet中的,所以本质上就是 类的属性和方法

如果不加!,就是普通的局部变量,所以在后面的y++值都是0,而每次一刷新jsp,x都会加1

<%@ 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>
<h1>晚上好!!</h1>
12345
<%
int i,sum=0;
for(i=1;i<100;i++){
	sum+=i;
}
out.println(sum);
%> 
<%!int x =0; %>
<%int y =0; %>
<%=x++%>
<%=y++%>


<table border=1>
<%for(int j=1;j<=10;j++)
	{%>
	<tr>
	<td><%=j%></td>
	<td>孙<%=j%></td>
	</tr>
	<%}%>
<%
   for (i = 1; i < 101; i++)
    out.println("<tr><td>" + i + "</td>" + "<td>" + "孙" + i + "</td></tr>");
	
%>
</table>
</body>
</html>

执行结果如下:

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Z2ZpTKnR-1666711391773)(../../../../../typora/Images/image-20221025212801425.png)]

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值