码迷,mamicode.com
首页 > 编程语言 > 详细

JavaWeb_JSP

时间:2017-08-31 12:44:25      阅读:149      评论:0      收藏:0      [点我收藏+]

标签:配置   临时文件   jsp页面   代码   架构   应对   语言   myeclipse   目的   

程序架构

 B/S:浏览器/服务器, 优势在于不需要客户端电脑安装程序,服务端发页面给客户端,只要客户端有浏览器就可以查看。

有利于项目的升级。缺点:对网络有要求,同时界面的美化有点难度。

C/S: 客户端/服务器,对优势在对网络的要求相对要少,界面美观。

缺点:升级难度大,每一台客户端都需要安装客户端程序。

Jsp、PHP、Asp.net (这三门服务端开发技术占据了95%以上的 市场)

常见的Web 服务器

Tomcat : Jsp

Apache: PHP

IIS: Asp.net

Tomcat服务器

目录:

技术分享

bin:服务的类文件

conf:服务器的配置文件 ->server.xml-> URIEncoding="utf-8" 设置Tomcat的字符编码

lib:服务器运行所需的Jar包,类库。

logs:服务器运行生成的日志文件。

temp:服务器运行生成的临时文件。

webapps: 用于保存部署在服务器端的项目。JavaWeb 项目必须要部署在服务器中才可以运行。

work: 用于保存项目运行时Jsp页面对象,在\Catalina\localhost\mySchoolSystem\org\apache\jsp这个目录保存了Jsp页面生成的.java源文件及编译后的.class文件。客户端访问页面时,服务就把对应的.class文件转换成html格式响应对客户端.

MyEclipse或Eclipse如何与Tomcat服务器进行关联绑定?

Window->Preferences->MyEclipse->Servers->Tomcat->Tomcat 7.x。 选择Enable

如果服务器运行时,控制台的运行信息中的中文出现乱码,则在 Tomcat 7.x->JDK->中设置:

-Dfile.encoding=UTF-8

技术分享

Jsp项目创建

目录:

技术分享

src: 放项目开发时的源文件,但是它是一个虚拟目录,在部署后,此目录在Tomcat服务器中不存在。

WebRoot:这个目录也是一个虚拟目录。里面有两个子目录(META-INF WEB-INF),及项目中所有的jsp页面。

WEB-INF:此目录有Web.xml项目的配置文件及lib子目录,lib目录放项目所需的外部jar包。

部署

->需要Tomcat来管理我们的项目。会把项目中的所有文件全部复制到Tomcat服务器的webapps子目录中。

除了 .java 文件需要编译,其他的文件都是直接复制。编译后的 .java源文件存放在WEB-INF->classes子目录中。

->启动Tomcat服务器

->在浏览器中访问部署好的项目。

JSP Java Server Page 运行在服务器端的Java页面。

客户端请求Jsp页面,服务器端先把 .jsp文件进行翻译成.java文件,再编译成.class文件,再在服务器端运行。最后转换成.html文件发送给客户端。

在服务器的work目录会一直存储编译好的.class文件,当第二次再来访问页面,则直接拿编译好的.class文件响应给客户端,所以,第二次访问比第一次访问要快。

Jap页面中: 编程语言 导入包 页面字符编码

<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>

技术分享

嵌入了Java代码在jsp页面中,以下代码作用是取得请求的页面路径,包括:请求的协议,服务名,端口号 + 页面的根目录

<%

String path = request.getContextPath(); //取得页面根目录

String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";

%>

<% %> 这是嵌入Java代码的区域,一个页面中可以有多个。

<%= %> 同等于 out.write(); out.print(); 向客户端进行输出。

内置对象

在Jsp页面中,系统为我们实例化了9个对象,这9个对象我们叫内置对象,因为已经创建好了,所以可以直接在页面中使用。常用的有5个。

out: 作用是向客户端输出数据。 out.write(i); out.println(str+"<p>");

request: 请求,客户端向服务发出请求,请求中包括了客户端所有的信息(浏览器、路径、IP、表单数据、URL的参数),告诉服务端需要什么,然后服务端做出相应的响应。

request对象也是一个作用区域,它里面可以存储数据。一个请求中存储的数据在另一个请求中不能共享。通过setAttribute(键,值)的形式进行存储。

response: 响应,对客户端发出的请求做出响应,也是服务端向客户端进行输出。sendRedirect(url);方法是一个重定向的方法,指令客户端请求url页面。

//页面的转跳方式,重定向,URL地址栏上的路径会发生改变,一共有2次请求,服务端有2次响应

response.sendRedirect("index.jsp");

//转发,URL不变,只有一次请求,服务端内部做了页面处理,只共享request中的数据。

request.getRequestDispatcher("index.jsp").forward(request, response);

技术分享

session: 会话,服务端对每一个访问的用户给出一个唯一的标识。

也是用于存储每一个用户的信息,可以存储对象,安全性相对较高。服务器可以为每一个会话开辟一个空间来存储用户的信息。

存储的位置在服务器端。在同一台电脑上请求,如果浏览器不同,服务端也会认为是不同的用户。会话有一定的时间限制,默认是20分钟。也可以自定义过期时间。

浏览器关闭,会话失效,但是在服务器端会话的销毁要到过期时间才销毁。

常用的方法:

技术分享

过期时间的设置也可以Web.xml项目的配置文件中进行设置,时间单位为分钟。

技术分享

Application应用程序对象,一个应用程序中只有一个对象,所有的用户共享。数据操作的方式,request 、session、application都一样

在某个页面中导入的页面,有两种方式

<jsp:include page="head.jsp"></jsp:include> <!-- 动态导入 -->

<%@include file="head.jsp" %> <!-- 静态导入 -->

动态导入,在本页面运行时才导入另一个页面的<body>标签中的内容.

静态导入,在页面运行前就导入另一个页面的所有内容。也就说,把两个页面直接合并。

还有一种Html的方式

<iframe height="120" width="100%" src="head.jsp" frameborder="0">

Application及Session对象有存储的数据有位置在服务器端,可以存储对象,存储的类型是Objcet类型。安全性相对较高。

还有4个不常用对象:page pageContext config exception

Cookie对象

Cookie 不属于内置对象。

Cookie也可以存储数据,存储的数据类型只能String字符串,存储的位置在客户端。相对于Session及Application来说,安全系数较低。每一个用户都可以存储Cookie。浏览器把安全级别设置为最高,是可以禁用Cookie的。

Cookie用于存储用户的一些信息,比如说用户名及密码,或者记住用户浏览足迹。

Cookie使用:1. 创建对象 2.写出到客户端 3.request对象取Cookie

JavaWeb_JSP

标签:配置   临时文件   jsp页面   代码   架构   应对   语言   myeclipse   目的   

原文地址:http://www.cnblogs.com/anstoner/p/7457289.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!