jsp:
lanuage脚本语言
可以有多个page
1、Jsp指令元素
(1)、page指令:通常位于jsp页面的顶端,同一个页面可以有多个page指令
例:<%@ page 属性1="属性值" 属性2="属性值1" ...属性n =“属性n”>
language:指定JSP页面使用的脚本语言 java
import:通过该属性来引用脚本语言中使用到的类文件
如:import="java.util.*"
contentType:用来指定JSP页面所采用的编码方式 text/html,ISO-8859-1
pageEncoding:编写页面的字符集
(2)、include指令:将严格外部文件嵌入到当前JSP文件中,同时解析这个页面中的JSP语句。<%@include..%>包含其他文件
(3)<%@taglib...%>:使用标签库自定义的一些标签,在JSP页面中启用定制行为。
2、Jsp注释可以使用一下三种
a.HTML的注释
<!-- html注释-->//客户端可见
b.JSP的注释
<%-- 注释内容--%>//客户端不可见
c.JSP脚本注释
//单行注释
/**/多行注释
3.声明内容显示:<%!%>.....................%!感叹号必须加
<%! String name="张三";%>
姓名: <%=name%>
4.声明方法:<%!%>.....................%!感叹号必须加
方法一:有返回值
<%! int add(int x,int y){
return x+y;
}
%>
sun= <%=add(3,4) %>
方法二:无返回值
<%! void adw(JspWriter out) throws Exception{
out.println(5+6);}
%>
he=<% adw(out); %>
关键字:
action提交到那个位置
jsp九大内置对象:
5.out输出对象:
out对象是JspWriter类的实例,是向客户端输出内容常用的对象 。作用域为page;
常用方法:
a.out.println()向客户端打印
b.out.clear()清除缓冲区内容,flush之后会抛异常
c.out.clearBuffer()清除缓冲区内容,flush之后不会抛异常
d.out.flush()将缓冲区内容刷新到客户端
f.(int )out.getBufferSize返回缓冲区字节数大小
g.(int )out.grtRemaining()缓冲区还剩多少
h.(boolean)out.isAutoFlush()返回缓冲区满时是否自动清空
j.out.close()关闭输出流
get比post效率高
6.request请求对象:
客户端的请求信息被封装在request对象中,通
过它才能了解到客户的需求,然后做出响应。它是HttpServletRequest类
的实例。作用域为request(用户请求期)。
<%request.setCharacterEncoding("utf-8")%>..........设置字符编码
a.String getParameter(String name)..................返回name指定参数的参数值?
?<%=request.getParameterValues(String?name);%>
b.String[]?getParameterValues(String?name)........返回包含参数name的所有值的数组?
<%String str=request.getParameterValues(String?name);
for(String s:str){
out.println(s);
}%>
c.处理post提交的乱码请求...........<%request.setCharacterEncoding("UTF-8")%>
d.获取mimz:........................<%=request.getContentType() %><br>
f.获取协议名:.....................<%=request.getProtocol() %><br>
g.获取主机名 ......................<%=request.getServerName() %><br>
h.获取端口号:.....................<%=request.getServerPort() %><br>
i.获取文件长度:...................<%=request.getContentLength() %><br> post提交才有值
j.获取真实路径:...................<%=request.getContextPath() %><br>
k.获取请求的上下文路径:...........<%=request.getRealPath("login2.jsp") %><br>
l.设置键值与获取:
<%request.setAttribute("person","xiaoli");%>
ren: <%=request.getAttribute("person") %><br>
7.response对象:
代表的是对客户端的响应,也就是说可以通过response 对象来组织
发送到客户端的数据。但是由于组织方式比较底层,所以不建议普通读者使用,需
要向客户端发送文字时直接使用。它是HttpServletResponse类的实例。作用域
为page(页面执行期)。
重定向:.............response.sendRedirect("login1.jsp");//要跳转到login1.jsp页面,但不能获取到功能
请求转发:...........request.getRequestDispatcher("login1.jsp");//到login1.jsp里面获取功能,过来不跳转到login1.jsp页面
练习代码:
<%
response.setContentType("text/html;charset=utf-8");//作用是使客户端浏览器区分不同种类的数据,并根据不同的MIME调用浏览器内不同的程序嵌入模块来处理相应的数据
out.println("你好");
out.println("你好吗?");
out.println("<hr>");
//out.flush();
PrintWriter outer=response.getWriter();//response.getWriter直接输出数据(response.print()),所以(out.print)只能在其后输出。 内置对象out的类型是JspWriter;response.getWrite()返回的类型是PrintWriter
outer.println("welcome come here!<br>");
response.sendRedirect("login1.jsp");//要跳转到login1.jsp页面,同页面里不能有out.flush()刷新;
//request.getRequestDispatcher("login1.jsp");//到login1.jsp里面获取功能过来,不跳转到login1.jsp页面
%>
out.print()与out.println()区别:print()必须传参,println()可以不传参,显示结果没什么区别,println输出多一个空格;
session
application
page
pageContext
exception
config