jsp学习笔记

1.jsp:就是在html中嵌入java代码
2.form(表单):用于收集用户输入的数据,提交数据,跳转界面.包括 input 元素、复选框、单选按钮或提交按钮等。

如下所示,action属性表示表单执行动作,提交信息的页面,可以是jsp页面,也可以是servlet的url-pattern

action一般都是跳转到对应后台方法的url,这样可以将表单数据提交给后台进行逻辑处理。

跳转的url要精准一点。url多一个"/"或者少一个"/"可能都是不一样的。

method表示Http方法(get或post)

input元素包括type,name,value等属性

type属性分为text(文本框)、button(按钮)、radio(单选按钮)、submit(提交按钮)

name属性表示元素对应的名称,在jsp中可通过内置对象request.getParameter(name)获取具体的name对应的内容

value属性表示各元素上显示的内容

<form action="index.jsp" method="post">
账号: <input type="text" name="account"><br>
密码: <input type="text" name="password"><br>
<input type="submit" value="登陆">
</form>

3.Scriptlet(脚本小程序),写在Scriptlet里面的一般是Java代码,以此区分java代码和html代码,有三种形式:
<%%>:局部变量,编写语句
<%!%>:全局变量、方法、类
<%=%>:表达式输出,用于将程序数据输出到客户端(浏览器)

也可以用<jsp:scriptlet>  </jsp:scriptlet>代替<% %>
4.注意:

一个完善的jsp文件,一般是不会包含Scriptlet代码的
尽量不要在jsp中定义类和方法,可以写在javabean里;
尽量不要使用out.println()输出,而应该使用表达式输出;

5.指令:指令page设置页面编码等属性、指令include包含页面、指令forward跳转页面

6.jsp内置对象:已经new好了的对象,可以直接用

内置对象的属性范围共四种:page、request、session、application,各个内置对象的属性范围是不一样的。

page:只在一个页面保存在属性,跳转后无效;

request:只在一次请求中保存,服务器跳转后依然有效;

session:在一次会话范围中,如何跳转都可以使用,在新开浏览器无法使用;

application:在整个服务器上保存,任何用户都可以使用
内置对象分类:request、response、session、application、out、pagecontext、config、page、exception等。

常用的方法有getParameter()、setAttribute()、getAttribute()

request(请求):HttpServletRequest接口的实例化对象,用于接收客户端请求.

respon(回应):HttpServletRespon接口的实例化对象,回应客户端的请求.
session(会话):HttpSession接口的实例化对象,用于完成用户的登录、注销等功能,只能应用于HTTP协议
application:ServletContext接口的实例化对象,ServletContext代表的是整个容器的操作。属性范围为整个服务器,只有服务器重启属性才会消失

注:

Request和Session的区别:
request是获取信息--通过用户提交的表单,查询字符串,cookie等获得信息
request用在数据提交,表单数据等
session是服务端用来保存一些数据(通常是标记状态的,当然也可以保存别的)
session是服务端的记录变量,可以跟踪记录访问者动作,比如登录,退出等。

7.客户端跳转:等整个页面执行完才跳转,跳转后地址会改变,比如response.sendRedirect();

服务器端跳转:立即跳转,跳转之后地址不会有任何改变,比如<jsp:forward>指令

8.jsp标签.<jsp:useBean/>用于关联JavaBean。<jsp:setProperty/>用于设置属性

useBean标签中的id指的是实例化后的对象名称.

id="simple"相当于JavaBean simple=new JavaBean(); class是javaBean的类路径

setProperty标签中的name指的也是实例化后的对象名称,property="*"表示设置所有的set方法

<jsp:useBean id="simple" scope="page" class="com.JavaBeanTest"/>
<jsp:setProperty name="simple" property="*"/>
<jsp:setProperty name="simple" property="age" param="age"/>
<jsp:setProperty name="simple" property="name" value="lin feng"/>

 9.使用el表达式,避免出现大量的scriptlet代码.形式为   ${属性名称}

比如在request.setAttribute("info","el表达式")之后, <h1>${info}</h1>就相当于request.getAttribute("info")

10.jstl是jsp的标准标签库,可以减少大量的Scriptlet代码.

11.jsp取出部署的应用程序名  ${pageContext.request.contextPath}  比如应用程序名为/ ,则取得的值为http://localhost:8080/

12.包含其他页面  <jsp:include page="/bottom.jsp"></jsp:include>

原文地址:https://www.cnblogs.com/expiator/p/6562002.html