目录
一.JSP基本使用
1.什么是JSP?
(0)全称:Java Server Pages java服务端页面。
(1)JSP是一种web的动态页面技术(数据可以随时更新--通过java技术)
(2)JSP页面作用:可以编写HTML代码+Java代码
(3)jsp页面其本质就是一个简化的servlet程序。(serlvet就是一个java文件。) b站---搜索所有的java教程---讲解javaweb技术---先从servlet开始讲--jsp 体系:先将jsp,再涉及到servlet 目的很简单---学习更容易。
(4)在JSP页面要编写Java代码 需要有一个特殊的区域容器包裹。
2.web应用程序的工作原理
web服务器作用:中转站 接收用户请求,将请求进行解析---》给到数据库数据匹配--最终响应给客户端
3.JSP的工作原理?
(1)客户端(浏览器打开访问指定资源(访问一个指定的资源里面的一个JSP页面)) ---向指定的web服务器发送了一个请求
(2)服务器要接收用户发送的请求,服务器此时需要做一件事情:拿着这个用户的请求进行解析,看当前服务器中是否存在这个页面
(3)请求的页面在web服务器存在,但是识别不了,必须将jsp页面文件转换一个servlet文件去编译(java)
(4)将java文件编译成.class字节码文件才能识别
(5)识别后,能够将所有请求信息进行解决,最后将结果响应(反馈)给当前客户端。
5.jsp中的 注释
整个JSP页面中,需要编写的代码:HTML+CSS+JS+jQUery+Bootstrap+easyui+Java代码 每种技术中所标记的注释格式是不一样的。 快捷方式也不一样
HTML注释 <!-- -- > 作用:在页面上不会显示,查看源代码可以显示
CSS注释 /* */ 作用:在页面上不会显示,查看源代码可以显示
JavaScript|jQuery注释 //单行注释 /多行注释/ 作用:在页面上不会显示,查看源代码可以显示
Java代码注释 //单行注释 /多行注释/ 作用:在页面上不会显示,查看源代码不可以显示
JSP脚本注释 <%-- --%> 作用:在页面上不会显示,查看源代码不会显示
<h1>我改变了JSP内容</h1>
<%
//创建一个输入器
Scanner sc = new Scanner(System.in);
/*
多行注释java
*/
Random rd = new Random();
%>
<!-- HTML注释 -->
<%--
jsp脚本注释
--%>
<%
Date date = new Date();
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
out.println(sdf.format(date));
%>
5.1 脚本 < % % >
所谓脚本就是能够编写java代码。
5.2声明模块
语法: < % ! % > 作用:定义变量,定义方法
<!-- JSP声明模块 -->
<%!
int sb = 20;
//out.println(sb);在声明模块中不能调用方法 以及打印输出 指定定义
//方法
public int add(int a,int b){
return a+b;
}
//问题:在声明模块中如果要去调用定义的变量或者方法 该怎么调用?
// (1)通过脚本模块调用
// (2)通过表达式调用
%>
<%
//脚本调用声明模块
out.println("<br/>"+sb);
out.println("<br/>"+add(1,2));
%>
<hr/>
定义的sb变量的结果为: <%=sb %>
5.3表达式
语法: < % = % > 作用:输出功能,并且每个表达式后面严禁+; 否则报错
二、表单的提交
关于HTML语言中的form表单提交的方式
(1)所有的表单元素如果要进行页面提交需要使用form标签包裹。
(2)关于form标签上的属性作用 action 提交的地址 发送当前页面的数据到另外的页面去。 method 请求的方式
get请求 特点:参数会暴露在地址栏上,数据大小有限制,不安全,做一些查询的工作
post请求 特点:与get请求正好相反
<h3>用户注册</h3>
<hr/>
<!-- demo3只是一个中转站页面 接收请求以及将请求中解析的数据送给数据库进行匹配 -->
<form action = "demo3.jsp" method = "post">
用户: <input type = "text"/>
<br/>
<br/>
<input type = "submit" value = "注册"/>
</form>
三、JSP的内置对象使用
JSP九大内置对象
out对象 request对象
response对象
session对象
application对象
config对象
page对象
pageContext对象
exception对象
1.out对象
out对象的作用:向页面输出结果 print()方法
<%
int a = 10;
out.print("你好");
/* out对象可以输出字符串 */
out.println("字符串");
/* out对象可以输出变量 */
out.println("变量a = "+a);
/* out对象可以输出HTML标签 */
out.println("<hr>");
/* out对象可以输出js脚本代码 */
out.println("<script>alert(123);</script>");
%>
其他的out对象:
2.request请求对象
request对象中的方法:
20个左右 目前:掌握3个就OK
setCharacterEncoding() 设置请求的编码格式
getParameter 获取请求参数 获取一个值
getParameterValues 获取一个key对应的多个参数 获取一组值
代码展示:
//如果请求中含有中文 需要设置编码
request.setCharacterEncoding("utf-8");
//根据request获取表单提交的值
//用户名
String username = request.getParameter("username");
//密码
String password = request.getParameter("password");
out.println("用户名: "+username);
out.println("<br/>密码: "+password+"<br/>");
//如果是复选框 可以格局getParameterValues方法来获取一组值 类型:字符串数组
浏览器发送的请求给服务器,服务器不能直接接收请求, 需要通过一个页面来接收,接收后与数据库进行交互在将数据响应给浏览器。
案例:用户登录
1.登录页面:输入用户和密码 进行登录
2.中转站页面:接收登录页面提交的数据 进行数据库交互 只要有页面提交的概念,都必须创建中转站页面。 中转站页面的所有命名规则: 以do开头+当前页面的名称。 中转站页面作用:只用来做获取数据及数据库交互,并没有实现页面显示 所以,该页面中所有的HTML标记都可以去掉。
3.成功的页面:与数据库进行交互后,如果满足要求--进入主页面的 如果不满足要求---重新进入登录页面进行登录验证。
图解:
接下的内容是后面学习的,稍微了解一下就好哒!
客户端的请求信息被封装在request对象中,通过它才能了解到客户端的需求,然后做出响应。他是HttpServletRequest类的实例。request对象具有请求域,即完成客户端的请求之前,该对象一直有效。
①String getParameter(String name)返回name指定参数的参数值
②String[] getParameterValues(String name) 返回包含参数name的所有值的数组
③void setAttribute(String,Object)存储此请求中的属性
④object getAttribute(String name):返回指定属性的属性值
⑤String getContentType()得到请求体的mime类型
⑥String getProtocol() 返回请求用的协议类型及版本号
⑦String getServerName() 返回接受请求的服务器主机名
⑧int getServerPort():返回服务器接收此请求所用的端口号
⑨String getCharacterEncoding():返回字符串编码方式
⑩void setCharacterEncoding():设置请求的字符编码方式
11.int getContentLength():返回请求体的长度(以字节数为单位)
12.String getRemoteAddr():返回发送此请求的客户端IP地址
13.String getRealPath(String path):返回虚拟路径的真实路径
14.String request.getContextPath():返回上下文路径