<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
<title>Title</title>
</head>
<body>
<%
//这是jsp脚本片段,在这个片段里写java代码
/*
1,jsp脚本片段只能写java代码,在访问jsp时,jsp引擎翻译jsp页面中的脚本片段
2,一个jsp页面可以有多个jsp脚本片段
3,多个脚本片段中的代码可以相互访问
*/
%>
<%
/*
面试题:jsp和servlet的区别?
1,jsp本质上就是一个servlet
2,jsp更注重于视图展示,servlet更注重于逻辑处理
3,现有的servlet,后有的就是jsp
*/
%>
<%
int num=1;
%>
<%--jsp表达式--%>
<%= num %>
</body>
<%@ page errorPage="error.jsp" contentType="text/html;charset=UTF-8" language="java" %>
<%@include file="hello.jsp"%>
<html>
<head>
<title>Title</title>
</head>
<body>
<%--
JSP的指令标识
<%@ 指令名 属性1="值1" 属性2="值2" .....%>
page指令:定义整个JSP页面的相关属性
include指令:引入其他的JSP页面。先把两个页面结合,在去编译成servlet。
taglib指令:引入页面上需要用到的标签库
--%>
<%--
JSP标签
1、内置标签
(1)jsp:include:引入指定的页面
(2)jsp:forward:转发页面
(3)jsp:param:传参数
2、JSTL标签,需要导入JSTL标签库
3、自定义标签
--%>
<jsp:include page="hello.jsp"></jsp:include>
<jsp:forward page="hello.jsp">
<jsp:param name="num1" value="10"/>
<jsp:param name="num2" value="20"/>
</jsp:forward>
面试题:
jsp:include标签和include指令的区别?
include标签:先把要引入的页面编译,再合并
include指令:先把要引入的页面合并,再编译
<%--
JSP作用域
四大作用域:
1、当前页(pageContext):一个属性只能在一个页面中获取。
2、一次请求(request):一个页面中设置的属性,范围是一次请求。
3、一次会话(session):一个会话中的属性,只要页面不关闭,都能获取到
4、整个web应用(application):在这个服务器上,当前项目下的任何一个位置都能获取。
--%><%
pageContext.setAttribute("pageContext","pageContext");
request.setAttribute("request","request");
session.setAttribute("session","session");
application.setAttribute("application","application");
%>
jsp 的九大内置对象?
内置 : 不需要直接创建,直接就能用
1,request
2,response
3,session
4, out
5,page
6,application
7,exception
8, pageContext
9,config
exception 只能指定了isErrorPage = "true" 才能使用
设置了 session =“false” 就不能用session了
<%@ page session="false" isErrorPage="true" contentType="text/html;charset=UTF-8" language="java" %>
<%-- <input type="text" value="<%= request.getAttribute("name1") == null ? "" : request.getAttribute("name1")%>">--%>
EL表达式的内置作用域对象
pageContext
requestScope
sessionScope
applicationScope
EL 表达式的缺陷?
1,只能读,不能写
2,不支持流程控制语句
<input type="text" value="${sessionScope.name}">
${age eq 1}
取参数:${param.username},${paramValues.hobby},${initParam.password}
c/s 架构;
client / server (客户端 / 服务端)
c/s架构的特点 : 需要安装特定的客户端软件
c/s 架构的优点 ?
速度快 :
软件中的数据大部分都是集成到客户端软件中的,少量的数据从服务端传过来,所以c/s 架构的系统速度快
体验好 :
速度快 ,界面炫酷
界面炫酷 :
专门的语言实现界面,更加灵活
服务器压力小:
大量的数据集成在客户端软件,服务器只需要传很少的数据量
安全:
客户端有多个,大量的数据在多个客户端上有缓存,有储存,服务器受损了问题也不大
c/s 架构的缺点?
升级维护比较麻烦,每一个客户端都需要升级,有一些软件不是那么容易安装的
b/s 架构 ?
B/S (browser/server) 浏览器、服务器
实际上 b/s结构的系统还是一个c/s 只不过这个client是一个固定不变的浏览器软件
b/s 架构的优点 ?
升级维护方便,成本比较方便 (只要升级服务器就行)
不需要安装特定的客户端软件,用户操作极其方便
b/s 架构的缺点 ?
速度慢 所有的数据都是在服务器上,每一个请求都需要浏览器响应数据,b/s架构
的系统在网络中传送的数据量比较大
体验差 界面不是那么酷炫,因为浏览器只支三个语言 ( html, css , javascript)
不安全 (所有的数据都子啊服务器上,服务器发送一场,数据全部异常)
不同的结构的系统在不同的业务场景下有不同的适用场景开发b/s 架构的系统就是开发网站,就是开发一个web系统
需要 web前端 web后端
javaweb开发最核心的规范 :servlet (server applet 服务器端的java小程序)
javaEE 实际上包括很多的规范 13种规范,其中servlet就是规范之一b/s 结构的系统通信原理 ?
https://www.baidu.com// 是网址
www.baidu.com 是一个域名
在浏览器地址栏上输入域名,域名解析器会将域名解析出来一个具体的ip地址和端口号等
ip地址是 ?
计算机在网络中的一个身份证号,在同一个网络中,ip地址是唯一的
端口号是 ?
一个端口代表一个软件,一个应用,一个服务
在同一个计算机上,端口号具有唯一性
什么是URL?
https://www.baidu.com 同意资源定位符应用服务器和web服务器的关系?
应用服务器实现了javaee的所有规范,web服务器只实现了javaee中的 servlet + jsp两个规范tomcat服务器的目录 ?
bin :tomcat服务器的命令文件存放的目录
conf: tomcat服务器的配置文件存放目录,
lib :核心程序目录,tomcat服务器是java语言编写的,这里的jar包里面都是class文件
logs : 日志目录,tomcat服务器启动等信息都会在这个目录下生成日志文件
temp :tomcat服务器的临时目录,存储临时文件
webapps: 存放大量的webapp ( web application : web 应用 )
work : 存放jsp文件翻译之后的java文件以及编译之后的class文件xxx.bat 文件是个什么文件?
bat文件是windows操作系统专用的,bat文件是批处理文件,这种文件可以编写大量的
windows的dos命令,然后执行bat文件就相当于批量的执行dos命令
xxx.sh 文件在windows当中无法执行,在linux环境中可以使用,在linux环境下能够执行的是shell
命令,大量的shell命令编写在shell文件中在b/s 架构中的系统中,有哪些角色?
浏览器软件的的开发团队
WEB server 的开发团队
DB server 的开发团队
webapp的开发团队 web应用是我们做为javaweb程序员开发的
webapp的开发团队和web server的开发团队之间有一套规范,javaee规范之一 servlet规范
servlet规范的作用?
webserver 和 webapp 解耦合
browser 和 webserver 之间有一套传输协议 http 协议(超文本传输协议)
webapp开发团队和 dbserver的开发团队之间有一套规范 jdbc规范