web应用中path的写法小结
- 每次写路径,给谁用?上来先写个/
- 浏览器-----/表示当前的主机名
- web应用—/表示当前web应用的根目录
- 1.转发
- 2.重定向
- 3.读取web应用下资源文件
- 4.表单提交数据
- 5.超链接a标签
- 6.img标签,src
- 7.使用类加载器获得文件的路径
- 8.url重写http://localhost:8080/day11/servlet;jsessionid=KKVSLJFHSIFISH
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
// TODO Auto-generated method stub
// * 1.转发
request.getRequestDispatcher("/login.jsp").forward(request, response);
// * 2.重定向
response.sendRedirect("/day11/login.jsp");
// * 3.读取web应用下资源文件
getServletContext().getRealPath("/1.txt");
// * 4.表单提交数据
// <form action="/day11/login.jsp"></form>
// * 5.超链接<a>标签
// <a href="/day11/login.jsp"></a>
// * 6.<img>标签,src
// <img src="/day11/checkimage">
// * 7.url重写 http://localhost:8080/day11/servlet;jsessionid=KKVSLJFHSIFISH
response.encodeUrl("/day11/login");
// * 8.使用类加载器获得文件的路径
PathSummary.class.getClassLoader().getResource("1.txt");
InputStream in = PathSummary.class.getClassLoader().getResourceAsStream("2.jpg");
InputStream in2 = getServletContext().getResourceAsStream("WEB-INF/classes/2.jpg");
//少用;
// PathSummary.class.getResource("/1.txt");
}
7 JSP
7.1 jsp的由来
Servlet对页面的美化是不擅长的
- SUN公司为了解决这个问题,就参考了asp的语法,弄出了jsp的技术规范
- asp、jsp、php
- jsp:html代码(html、css、js)和java代码
1.What is JSP
JSP( JavaServer Pages )是由Sun 公司倡导、许多别的公司参与一起建立的一种新动态网页
技术标准,类似其他技术标准,如ASP、PHP 或是ColdFusion,等等。
在传统的网页HTML 文件( .htm,.html )中加入Java程序片段( Scriptlet )和JSP标签,构成了JSP 网页(*.jsp)。Servlet/JSP Container 收到客户端发出的请求时,首先执行其中的程序片段,然后将执行结果以HTML格式响应给客户端。其中程序片段可以是:操作数据库、重新定向网页以及发送 E-Mail 等等,这些都是建立动态网站所需要的功能。所有程序操作都在服务器端执行,网络上传送给客户端的仅是得到的结果,与客户端的浏览器无关,因此,JSP 称为Server-SideLanguage。
2.Microsoft 和 Sun 都提供它们各自品牌的服务器页面。Sun提供JavaServer Pages (JSP)而 Microsoft 提供 Active Server Pages(ASP)。JSP 和 ASP 都设计成使开发者能够从后端系统产生动态页面。
虽然表面看起来相似,ASP 和JSP仍有一些不同之处:
JSP 是平台独立性的,一次编写,随处运行;
开发者通过Java Community Process(JCP)指引方向;
JSP 开发者可以通过定制标签扩展JSP标签库;
JavaBeans 和 Enterprise JavaBeans (EJB) 可以和JSP一起使用,增强可重用性和减小维护。
JSP 可以存取其他一些Java 库,包括Java 数据库连接(JDBC),Java Mail,Java Message
Service(JMS),以及JNDI。
JSP 编译成二进制类文件,不需要在每次请求时进行解释;
JSP 有广泛的支持,包括工具,容器和服务器。
7.2 JSP介绍
Jsp 本质上就是 serlvet , jsp 在 第一次被访问的时候, 会被 编译生成一个serlvet类, 然后 再编译生成 一个.class文件, 然后由 jvm 加载运行。
问题1.为什么是jsp 本质上就是serlvet:
查看 work 目录下 , 找到了 jsp 对应 的 被翻译成 serlvet类, 打开后发现
所以 jsp 本质上就是 servlet …
结论 : 访问JSP实际上就是访问 serlvet . …
Jsp 比 servlet 要来的更加方便. (jsp 访问 不需要 配置 对外访问路径, 直接访问就好 … )
Jsp的翻译过程详解:
JSP 的执行过程:
(1) 客户端发出Request (请求);
(2) JSP Container 将JSP 翻译成Servlet 的源代码;
(3) 将产生的Servlet 的源代码经过编译后,加载到内存执行;
(4) 把结果Response (响应)发送至客户端。
JSP和Servlet的执行效率相差不大