java web之jsp初学习
来源:互联网 发布:淘宝联盟编辑分享文案 编辑:程序博客网 时间:2024/06/01 20:56
Java Web 介绍
- 概念
Java Web,是用Java技术来解决相关web互联网领域的技术总和。
web包括:web服务器和web客户端两部分。
Java在客户端的应用有java applet,不过使用得很少。
Java在服务器端的应用非常的丰富,比如Servlet,JSP和第三方框架等等。Java技术对Web领域的发展注入了强大的动力。
- web服务器
WEB,在英语中web即表示网页的意思,它用于表示Internet主机上供外界访问的资源。
Internet上供外界访问的Web资源分为:
静态web资源(如html 页面):指web页面中供人们浏览的数据始终是不变。
动态web资源:指web页面中供人们浏览的数据是由程序产生的,不同时间点访问web页面看到的内容各不相同。静态web资源开发技术:Html 常用动态web资源开发技术:JSP/Servlet、ASP、PHP等。
- web应用程序
WEB应用程序指供浏览器访问的程序,通常也简称为web应用。例如有a.html 、b.html…..多个web资源,这多个web资源用于对外提供服务,此时应把这多个web资源放在一个目录中,以组成一个web应用(或web应用程序)
一个web应用由多个静态web资源和动态web资源组成,如:html、css、js文件,Jsp文件、java程序、支持jar包、配置文件等等。
Web应用开发好后,若想供外界访问,需要把web应用所在目录交给web服务器管理,这个过程称之为虚似目录的映射。
- 静态Web
htm、html,这些是网页的后缀,如果现在在一个服务器上直接读取这些内容,那么意味着是把这些网页的内容通过网络服务器展现给用户。整个静态WEB操作的过程图如下: 静态WEB中存在以下几个缺点:
Web页面中的内容无法动态更新,所有的用户每时每刻看见的内容和最终效果都是一样的。
为了可以让静态的WEB的显示更加好看,可以加入了JavaScript以完成一些页面上的显示特效,但是这些特效都是在客户端上借助于浏览器展现给用户的,所以在服务器上本身并没有任何的变化。
静态WEB无法连接数据库,无法实现和用户的交互。
- 所谓的动态不是指页面会动,主要的特性的是:“WEB的页面展示效果因时因人而变”,而且动态WEB具有交互性,WEB的页面的内容可以动态更新。整个动态WEB操作的过程图如下:
在静态WEB程序中,客户端使用WEB浏览器(IE、FireFox等)经过网络(Network)连接到服务器上,使用HTTP协议发起一个请求(Request),告诉服务器我现在需要得到哪个页面,所有的请求交给WEB服务器,之后WEB服务器根据用户的需要,从文件系统(存放了所有静态页面的磁盘)取出内容。之后通过WEB服务器返回给(Response)客户端,客户端接收到内容之后经过浏览器渲染解析,得到显示的效果。
静态WEB中存在以下几个缺点:
Web页面中的内容无法动态更新,所有的用户每时每刻看见的内容和最终效果都是一样的。
为了可以让静态的WEB的显示更加好看,可以加入了JavaScript以完成一些页面上的显示特效,但是这些特效都是在客户端上借助于浏览器展现给用户的,所以在服务器上本身并没有任何的变化。
静态WEB无法连接数据库,无法实现和用户的交互。
动态web
动态WEB中,程序依然使用客户端和服务端,客户端依然使用浏览器(IE、FireFox等),通过网络(Network)连接到服务器上,使用HTTP协议发起请求(Request),现在的所有请求都先经过一个WEB Server Plugin(服务器插件)来处理,此插件用于区分是请求的是静态资源(.htm或者是.htm)还是动态资源。
如果WEB Server Plugin发现客户端请求的是静态资源(.htm或者是.htm),则将请求直接转交给WEB服务器,之后WEB服务器从文件系统中取出内容,发送回客户端浏览器进行解析执行。
如果WEB Server Plugin发现客户端请求的是动态资源(.jsp、.asp/.aspx、.php),则先将请求转交给WEB Container(WEB容器),在WEB Container中连接数据库,从数据库中取出数据等一系列操作后动态拼凑页面的展示内容,拼凑页面的展示内容后,把所有的展示内容交给WEB服务器,之后通过WEB服务器将内容发送回客户端浏览器进行解析执行。
- Java Servlet
Java用于动态网页的一种技术。
Servlet网页内容会以实例方式加载到内存中,而且通常只会加载一次。如果同时有多个游览器请求此网页来处理,Web容器会分别替各个请求建立一条线程,以存储相同的Servlet实例。这样一来不仅降低了服务器的负担,也提升了执行效能。但若Servlet实例一直都没被存取的话,占着内存空间也是一种资源浪费,所以有些服务器会自动将这种Servlet实例从内存中移除。- Web Container(Web容器)
Web容器用来执行Servlet网页,所以又称Servlet容器。
Web容器就是专门设定与管理Servlet网页的运行环境,包括Web部署文件加载,多线程管理,内存管理,安全性管理,JSP标签解析等。
当Web容器执行环境设定好之后,就会加载相应的Servlet网页内容并执行。
Web容器功能独立出来的好处之一就是编写Servlet网页的程序设计师不需要烦恼如何设定环境,而只要专心处理网页的程序逻辑即可。搭建JavaWeb开发环境
- 工具介绍
Tomacat是一个简易但功能齐全的Web服务器,而且是一个Open Source软件。
Tomcat是一个实现了JAVA EE标准的最小的WEB服务器,是Apache 软件基金会的Jakarta 项目中的一个核心项目,由Apache、Sun 和其他一些公司及个人共同开发而成。因为Tomcat 技术先进、性能稳定,而且开源免费,因而深受Java 爱好者的喜爱并得到了部分软件开发商的认可,成为目前比较流行的Web 应用服务器。学习JavaWeb开发一般都使用Tomcat服务器,该服务器支持全部JSP以及Servlet规范,启动界面如图:- 环境搭建步骤
1.安装JDK(jdk-7u15-windows-i586.ext)
2.解压eclipse-jee-helios-win32软件
3.搭建tomcat
解压tomcat 服务器到d:某个文件夹中D:\Tomcat_relation\apache-tomcat-7.0.22-windows-x86\apache-tomcat-7.0.22
配置环境变量
JAVA_HOME (C:\Program Files\Java\jdk1.7.0_15)
CATALINA_HOME(E:\webserver\apache-tomcat-7.0.22)双击bin目录下的startup.bat文件
浏览器输入:http://localhost:8080 可以看到Tomcat的欢迎页面就说明配置成功了。
使用eclipse编写第一个JavaWeb程序
步骤
- 新建工程,选择“Dynamic Web Project”创建动态网站
- 点击“New Runtime”,选择项目的运行环境
- 选择“Apache Tomcat v7.0”
- 选择tomcat安装路径。选择jre7。
创建默认首页“JSP File”
填写主页名字index.jsp
Jsp简介
- 概念
JSP全名为Java Server Pages,其根本是一个简化的Servlet设计,他实现了在Java当中使用HTML标签。Jsp是一种动态网页技术,标准也是JAVAEE的标准。Jsp与Servlet一样,是在服务器端执行的。
- 常见动态网站开发技术对比
Jsp:Java平台,安全性高,适合开发大型的,企业级的Web应用程序
Asp.net:.Net平台,简单易学。但是安全性以及跨平台性差
Php:简单,高效,成本低开发周期短,特别适合中小型企业的Web应用开发。(LAMP:Linux+Apache+MySQL+PHP)
- Jsp页面元素构成
- Jsp指令
Page指令:
通常位于jsp页面顶端,同一个页面可以有多个Page指令 page指令语法格式
<%@ page 属性1=“属性值” 属性2=“属性值1,属性值2”... 属性n="属性值n"%>
language
指定jsp页面使用的脚本语言,默认值为java
import
通过该属性来引用脚本语言中使用到的类文件,默认值无
contentType
用来指定jsp页面所采用的编码方式,默认值text/html;ISO-8859-1
--
include指令
将一个外部文件嵌入到当前JSP文件中,同时解析这个页面中的jsp语句
--
taglib指令
使用标签库定义新的自定义标签,在JSP页面中启动定制行为。
- 注释
HTML的注释:
<!-- html注释 --> //客户端可见
Jsp的注释:
<%-- JSP注释 --%> //客户端不可见
Jsp脚本注释:
<% //单行注释 /**/多行注释%>
- Jsp脚本
在jsp页面中执行java代码
语法:
<% Java代码 %>
例如:
<% out.println("Hello World") %>
- Jsp声明
在JSP页面中定义变量或者方法
语法:
<%! Java代码 %>
例如:
<%! //变量 String name = "Jack"; //方法 int add(int x, int y){ return x+y; }%>
- Jsp表达式
在JSP页面中执行的表达式
语法:
<% = 表达式 %> //注意:表达式不以分号结束
例如:
<br>你好<%=name %><br>x+y=<%= add(10, 5) %><br>
- Jsp页面生命周期
jspServer()方法被调用来处理客户端的请求。对每一个请求,jsp引擎创建一个新的线程来处理该请求。如果有多个客户端同时请求该jsp文件,则jsp引擎会创建多个线程。每个客户端请求对应一个线程。以多线程方式执行可以大大降低对系统的资源需求,提高系统的并发量及响应时间。但也要注意多线程的编程带来的同步问题,由于该Servlet始终驻于内存,所以响应是非常快的。
Jsp内置对象
- 内置对象简介
Jsp内置对象是Web容器创建的一组对象,不使用new关键字就可以使用的内置对象。
例如:
<% int value[] = {60, 70, 80}; for(int i: value){ out.println(i); } %>
代码中的out对象就属于内置对象
- Web程序的请求响应模式
用户发送请求(request) 服务器给用户响应(response)
- 缓冲区
Buffer,所谓缓冲区就是内存的一块区域用来保存临时数据
- out
out对象是JspWriter类的实例,是向客户端输出内容常用对象
常用方法如下:
- void println() 向客户端打印字符串
- void clear() 清除缓冲区的内容,如果在flush()之后调用会抛出异常
- void flush() 将缓冲区内容输出到客户端
- int getBufferSize() 返回缓冲区以字节数的大小
- int getRemaining() 返回缓冲区还剩余多少可用
- boolean isAutoFlush() 返回缓冲区满时,是自动清空还是抛出异常
- void close 关闭缓冲流
- get与post区别
表单有两种提交方式:get与post
<form name = "regForm" action="动作" method="提交方式"></form
- get:以明文的方式通过URL提交数据,数据在URL中可以看到。提交的数据最多不超过2kb。安全性能较低但效率比post方式高。适合提交数据量不大,安全性不高的数据。比如:搜索,查询等功能。
- post:将用户提交的信息封装在HTML HEADER 内。适合提交数据量大,安全性能高的用户信息。比如:注册,修改,上传等功能。
例如:
<body><h1>用户登录</h1><hr><form action="dologin.jsp" name="loginForm" method="get"><table> <tr> <td>用户名:</td> <td><input type="text" name="userName"></td> </tr> <tr> <td>密码:</td> <td><input type="password"" name="password"></td> </tr> <tr> <td colspan="2"><input type="submit" value="登录"> </td> </tr></table></form></body>
- java web之jsp初学习
- 初学jsp网页制作-java web应用
- JSP初学之己见(HTML+Java)
- java之初学习
- jsp之初学过滤器二---web.xml配置错误
- java web 开发初学v_2010_8_21之javascrpt
- java web 开发初学v_2010_8_23之俄罗斯方块
- 初学 Java web(三)JSP页面请求与响应
- java web基础之jsp
- Java web之JSP基础
- Java Web 之详解JSP
- java web基础之jsp
- JAVA WEB开发之JSP
- Java Web之JSP技术
- Java web之六 JSP
- java web之路 jsp jsp:setProperty
- java web之路:jsp之基础
- java web初学日志
- 列举几种进程的同步机制及优缺点
- treap
- mysql 中 unix_timestamp和from_unixtime 时间戳函数
- 【POJ】Highways
- Android Studio生成jar包,其他工程调用。(res文件)
- java web之jsp初学习
- if-else语句
- Java中的接口回调
- mysql分区表简单例子
- 【POJ】A Knight's Journey
- 【垂直搜索引擎搭建00】说在前面的话
- AsyncTask原理分析
- Recommender System Fragment 2
- 通讯录动态开辟版本