JSP全名为Java Server Pages,中文名叫java服务器页面,其根本是一个简化的Servlet设计,它是由Sun Microsystems公司倡导、许多公司参与一起建立的一种动态网页技术标准。JSP技术有点类似ASP技术,它是在传统的网页HTML(标准通用标记语言的子集)文件(.htm,.html)中插入Java程序段(Scriptlet)和JSP标记(tag),从而形成JSP文件,后缀名为(*.jsp)。 用JSP开发的Web应用是跨平台的,既能在Linux下运行,也能在其他操作系统上运行。
它实现了Html语法中的java扩展(以 <%, %>形式)。JSP与Servlet一样,是在服务器端执行的。通常返回给客户端的就是一个HTML文本,因此客户端只要有浏览器就能浏览。
JSP技术使用Java编程语言编写类XML的tags和scriptlets,来封装产生动态网页的处理逻辑。网页还能通过tags和scriptlets访问存在于服务端的资源的应用逻辑。JSP将网页逻辑与网页设计的显示分离,支持可重用的基于组件的设计,使基于Web的应用程序的开发变得迅速和容易。 JSP(JavaServer Pages)是一种动态页面技术,它的主要目的是将表示逻辑从Servlet中分离出来。
Java Servlet是JSP的技术基础,而且大型的Web应用程序的开发需要Java Servlet和JSP配合才能完成。JSP具备了Java技术的简单易用,完全的面向对象,具有平台无关性且安全可靠,主要面向因特网的所有特点。
以下是个人学习笔记
在eclipse中创建动态web项目后
完成对Tomcat的自动部署
创建一个jsp文件后,在里面使用
<%
//书写任意java代码,可以定义局部变量
%>
<%-- --%>也可以注释html
<%! %>//这里面定义成员变量
成员变量是可保存的
局部变量相当于是在方法里面定义的变量,每次调用完成后会销毁
<%= >//内容输出表达式,可以是方法的返回值,也可以是变量
request.getParameter()//用来获取传递的参数
request.getRequestDispatcher(path).forward(request,response)//请求转发
常用内置对象request response session application
请求转发
客户端发送request--->服务器端转发request--->服务器另一区域接收request--->response客户端
重定向
客户端发送request--->服务器端response--->客户端新发送request--->服务器端response
域对象
page<request<session<application
乱码问题
request.setCharacterEncoding("utf-8");//在接收数据之前先确定好编码格式
在jsp中引入jsp文件,使用jsp内置标签
<jsp:include page=""></jsp:include>//一般网页中都会设置相同的头部与脚部
动态绝对路径优先使用
相对路径缺点很大,局限性
客户端路径都使用绝对路径
<a href="<%=request.getContextPath()%>/css/style.css"></a>//动态绝对路径
服务器端路径可以自动解析项目名
服务器端绝对路径/css/style.css
1.JSP是什么
java server page,javaserver端页面技术。其主要作用在server端动态生成页面, 其组成java代码和html,
2.JSP的组成
html:包含css/js
java
java代码段
<%java代码%>
表达式
<%=%>
3.隐含对象
对象不须要创建,能够直接调用。 out 、 request 、response;
4.指令
servelt引擎在将.jsp文件转换成servelt源文件时,所做的一些额外的处理。
语法:
<%@指令名 属性%>
经常使用的一些指令
<%@page import="java.util.*"%>
<%@page pageEncoding="utf-8" contentType="text/html;charset=utf-8"%>
pageEncoding: jsp文件在保存的时候须要依照什么样的编码格式来保存。
contentType:等同于response 的setContentType()
5.JSP的运行
jsp引擎 (servelt引擎 )会将jsp文件转换为一个servelt源文件,再去 调用其service方法
6.转换
html:放到service中,使用write输出
java: 放到service中,照搬
表达式:放到service中,使用print输出
7.转发
a.同一个应用中,一个组件完毕部分请求,将未完毕的请求转交给另外一个组件继续处理。 在这些组件之间HttpServeltRequest对象共享。
b.转发步骤:
//绑定数据到request对象中
request.setAttribute(String name, Object obj);
Object request.getAtrribute(String name);
假设name没有找到就返回 null
//创建转发器
RequestDispatcher rd=request.getRequestDispatcher("emplist.jsp");
rd.forward(request, response);
也能够这样写
request.getRequestDispatcher("emplist.jsp").forward(request, response);
c.转发和重定向的差别
1).重定向是这件事已经完毕,转发是这件事完毕了部分。
2).重定向的地址是随意的,转发是在同一程序内部组件之间。
3).重定向地址栏中的地址会发生改变,而转发不会改变。
8.路径问题
(1)链接 (2)表单提交 (3)重定向 (4)转发
相对路径:不以“/”开头的路径
绝对路径:以“/”开头的路径。
以(1)、(2)、(3)的情况,绝对路径从应用名開始,(4)绝对路径从应用名之后開始