JavaWeb
文章平均质量分 69
confirmAname
编程爱好者
展开
-
乱码(1):Servlet编程中处理表单中的中文问题
在MyEclipse中新建一个web工程,取名为demo。新建addEmp.jsp文件,新建AddServlet.java文件,为AddServlet映射的url为/add。addEmp.jsp :Insert title here姓名:薪水:因为页面中有中文,所以pageEncoding属性的值必须为可以保存(即编码)中文的编码格式,可以是UTF-8,也可以是原创 2013-06-17 19:40:42 · 1419 阅读 · 0 评论 -
Servlet的文件上传与下载
工程目录结构:文件上传:文件上传用到了commons-fileupload-1.2.1.jar和commons-io-1.4.jar两个jar包。指定将文件上传到服务器的store目录下。fileupload.jsp:Insert title here姓名:文件:这里需要注意两点:第一method方法必须修改为post。第二为form标签添加enct原创 2013-05-31 03:41:13 · 897 阅读 · 0 评论 -
过滤器
1. 过滤器简介:在一个Web应用中,有很多web组件,它们都用于响应特定的客户请求。不过,在这些web组件响应客户请求的过程中,可能都会完成一些相同的操作。如果在多个web组件中编写完成同样操作的程序代码,显然会导致重复编码,从而降低开发效率和软件的可维护性。为了解决上述问题,过滤器Filter应运而生。它是在Java Servlet 2.3规范中出现的技术,Filter可认为是Serv原创 2013-05-25 14:42:24 · 799 阅读 · 0 评论 -
JSP技术的发展趋势
JSP技术主要用来简化动态网页的开发过程,由于它在形式上和html文档比较相似,因此与Servlet相比,用JSP来编写动态网页更加直观。但是,当网页非常复杂时,JSP文件中的大量的html标记和java程序片段混杂在一起,会大大削弱JSP代码的可读性和可维护性,而且会增加调试JSP文件的难度。因此自从JSP技术诞生以后,它的发展的总目标就是使JSP代码变得更加简洁和精炼。为了达到这一目标原创 2013-05-23 16:41:27 · 3933 阅读 · 0 评论 -
ServletContext接口
javax.servlet.ServletContext是Servlet与Servlet容器之间直接通信的接口。Servlet容器在启动一个web应用时,会为它创建一个ServletContext对象。每个web应用都有唯一的ServletContext对象,同一个web应用中的所有Servlet对象都共享一个ServletContext对象,ServletContext对象们可以通过这个Serv原创 2013-05-15 15:33:37 · 533 阅读 · 0 评论 -
JavaWeb应用的生命周期
JavaWeb应用的生命周期是由Servlet容器来控制的。归纳起来,JavaWeb应用的生命周期包括三个阶段:第一阶段:启动阶段Servlet容器在启动JavaWeb应用时,会完成一下操作:(1) 把web.xml文件中的数据加载到内存中(2) 为JavaWeb应用创建一个ServletContext对象(3) 对所有的Filter进行初始化(4) 对那些需要在Web应用启原创 2013-05-15 15:43:01 · 865 阅读 · 0 评论 -
ServletConfig接口
Servlet接口的init(ServletConfig config)方法有一个ServletConfig类型的参数。当Servlet容器初始化一个Servlet对象时,会为这个Servlet对象创建一个ServletConfig对象。在ServletConfig对象中包含了Servlet的初始化参数信息,此外ServletConfig对象还与当前web应用的ServletContext对象关联原创 2013-05-15 12:00:34 · 767 阅读 · 0 评论 -
Servlet接口
Servlet API的核心是javax.servlet.Servlet接口,所有的Servlet类都必须实现这个接口。Servlet接口的源代码如下:package javax.servlet;import java.io.IOException;public interface Servlet{ public void init(ServletConfig config) t原创 2013-05-14 23:28:16 · 675 阅读 · 0 评论 -
Servlet中利用JDBC操作数据库,往emp表中添加数据
第一步:首先进入数据库,建库,建表。第二步:在myeclipse中新建一个web工程,我的就为web01_demo,接着在WebRoot下新建一个add.jsp文件。add.jsp的代码十分简单: My JSP 'add.jsp' starting page add employee name: salary:原创 2013-05-14 15:19:32 · 2483 阅读 · 0 评论 -
Ajax(4):post请求之表单中含有中文时如何处理
当采用post方式向服务器发送请求时,并且表单中被输入了中文时,往往会出现乱码的状况。解决的方法: 在接收请求的Servlet中加上如下代码:request.setCharacterEncoding("UTF-8");对于利用Ajax发送post请求,浏览器统一使用UTF-8进行编码。此行代码的作用就是以编程的方式指定让Tomcat服务器以UTF-8进行解码,这样编码和解码就保持了一致原创 2013-06-18 23:27:22 · 814 阅读 · 0 评论 -
JSTL及其核心(Core)标签库
自定义JSP标签是用来替代JSP中的Java程序片段的有效途径。大多数web应用的JSP文件常常要实现一些通用的功能。为了提高web应用的开发效率,SUN公司制定了一组标准标签库的规范,这组标准标签库称为JSTL(JSP Standard Tag Library)。JSTL标签库实际上包含5个不同的标签库。JSTL1.1规范为这些标签库的URI和前缀做了约定。JSTL标签库的种类原创 2013-05-31 07:09:47 · 1302 阅读 · 0 评论 -
JSTL Functions标签库提供的通用EL函数
在JSTL Functions标签库中提供了一组常用的EL函数,主要用于处理字符串,在JSP文件中可以直接使用这些函数。在JSP文件中使用Functions标签库,要先通过taglib指令引入该标签库:Functions标签库中的16个EL函数:函数描述fn:contains用于判断在源字符串中是否包含目标字符串fn:containsIg原创 2013-05-31 07:43:17 · 1048 阅读 · 0 评论 -
乱码(0):如何让浏览器按照指定编码打开服务器返回的html文件
Tomcat服务器上某个应用下有个html文件,现在想让客户端访问时以指定字符集打开这个页面。譬如以UTF-8打开这个页面,那么我们只要保证做到两点:① 编辑好html文件后保存时指定以UTF-8格式保存,此过程相当于编码过程。② 在html文件的head>里加上如下代码 :上面代码相当于模拟了一个响应头,响应头的名称为"content-type",值为"text/html; ch原创 2013-06-17 18:11:12 · 2219 阅读 · 0 评论 -
3种get请求方式
三种get请求方式:① .表单的默认提交方式② 直接在浏览器地址栏输入地址③ .通过链接访问某个地址原创 2013-06-05 01:14:30 · 872 阅读 · 0 评论 -
JavaWeb开发中的路径问题:绝对路径和相对路径
1. 一般需要考虑以下四种情况:1. 链接: 2. 表单提交: 3. 重定向: response.sendRedirect(" ");4. 转发: request.getRequestDispatcher(" ").forward(request,response);2. 相对路径与绝对路径:1. 相对路径:不以“/”开头的路径。2. 绝对路径:以“/”开头的路径。原创 2013-05-21 20:09:03 · 900 阅读 · 0 评论 -
URL重写机制
在一些需要Session机制支持的应用中,如果浏览器禁止了Cookie,那么应用如何才能保证在没有Cookie支持的情况下仍然可以使用呢?浏览器一旦禁止Cookie,Servlet容器就无法向客户端存放表示SessionID的Cookie,在客户端的HTTP请求中也就不会包含表示SessionID的Cookie,Servlet容器因此就不能跟踪会话,因此每次当客户请求访问支持会话的JSP页面时原创 2013-05-28 15:11:12 · 1642 阅读 · 0 评论 -
JSP三大编译指令之page指令
JSP的编译指令是通知JSP引擎的消息,它不直接生成输出。编译指令都有默认值,因此开发人员无须为每个指令设置值。常见的编译指令有如下三个:① page:该指令是针对当前页面的指令。② include: 用于指定包含另一个页面。③ taglib: 用于定义和访问自定义标签。使用编译指令的语法格式如下:page指令:page指令通常位于JSP页面的顶端,一个JSP页面原创 2013-05-19 16:45:11 · 1266 阅读 · 0 评论 -
Servlet的线程安全问题
一个web应用可能被来自四面八方的客户并发访问,而且有可能这些客户并发访问的是web应用中的同一个Servlet。Servlet容器为了保证能同时响应多个客户的要求访问同一个Servlet的HTTP请求,通常会为每一个请求分配一个工作线程,这些工作线程并发执行同一个Servlet对象的service方法,这就可能带来线程安全问题。1. 第一种情况:利用Java的同步机制因为Servlet也原创 2013-05-31 04:29:23 · 902 阅读 · 0 评论 -
监听器
1. 监听器简介:当web应用在web容器中运行时,web应用内部会不断地发生各种事件:如web应用被启动,web应用被停止,用户session开始,用户session结束,用户请求到达等。通常来说,这些web事件对开发者来说是透明的。实际上,Servlet API提供了大量监听器来监听web应用的内部事件,从而允许当web内部事件发生时,回调事件监听器的方法。使用Listener只需原创 2013-05-25 15:24:53 · 848 阅读 · 0 评论 -
Session
在Web开发领域,会话机制是用于跟踪客户状态的普遍解决方案。会话指的是在一段时间内,单个客户与Web应用的一连串相关的交互过程。在一个会话中,客户可能会多次请求访问Web应用的同一个网页,也有可能请求访问同一个Web应用中的多个网页。1. 什么是Session在服务器端维护用户状态的一种状态管理技术。浏览器访问服务器时,服务器会创建一个对象(Session对象),同时还会生成一个标识该对象原创 2013-05-23 13:42:28 · 1274 阅读 · 0 评论 -
JSP的九大内置对象(隐含对象)
Servlet可以访问由Servlet容器提供的ServletContext,ServletRequest和ServletResponse等对象。那么在JSP中,如何访问这些对象呢?对于JSP,这些对象称为内置对象或者叫隐含对象,每个对象都被固定的引用变量引用。JSP不需要做任何变量声明,就可以直接通过这些固定的引用变量来引用这些对象。下表列出了所有内置对象的引用变量和类型之间的对应关系。原创 2013-05-20 01:32:34 · 1072 阅读 · 0 评论 -
Ajax(5):利用json做数据交换
工程目录:show.jsp :Insert title herefunction getXmlHttpRequest(){var xhr=null;if((typeof XMLHttpRequest)!='undefined'){xhr=new XMLHttpRequest();}else{xhr=new ActiveXObject("Microsoft.XML原创 2013-06-21 00:50:49 · 872 阅读 · 0 评论 -
Ajax(0):理论简介
2005年,Jesse James Garrett 发表了一篇在线文章,题为“Ajax : A new Approach to Web Application”,Ajax技术诞生。Ajax是Asynchronous JavaScript and XML的缩写,这一技术的核心是XMLHttpRequest对象(简称xhr),xhr能够以异步方式从服务器取得数据,然后再通过DOM将新数据插入到页面中,原创 2013-06-15 20:41:01 · 621 阅读 · 0 评论 -
JSON(2):如何将一个java对象转换为一个符合json语法的字符串
假设在服务器端我们已经得到一个java对象,现在考虑如何将这个java对象转换为一个符合json语法的字符串。当然我们可以自己写一套算法实现这个转换,但是比较麻烦,尤其当对象的属性很多的时候或者属性嵌套的比较深的时候,就更麻烦了。实际中,我们可以利用现成的工具实现这个转换过程:User.java :public class User { private String nam原创 2013-06-20 14:37:00 · 922 阅读 · 0 评论 -
注册登录模块
为保持主要知识点脉络清晰,本模块没有使用Ajax技术,所以没有实现注册时光标下移即可验证用户名是否被占用功能。同时省略了客户端的JS验证用户名和密码是否符合规定的功能。注册字段只有两个,昵称和密码,昵称要求唯一,主键自增长,数据库使用MySQL。先看看模块的文件目录结构:下面贴上三个Servlet的源代码:public class CheckCodeServlet extend原创 2013-05-28 11:02:23 · 1322 阅读 · 1 评论 -
HTTP状态管理
1. 为什么要对HTTP协议进行状态管理HTTP是无状态的协议,每次当客户端请求访问Web服务器端的一个网页时,都必须与服务器先建立一个连接,然后再发送HTTP请求,等到收到了来自服务器的HTTP响应,本次连接就被关闭。这种无状态的协议的优点就是,可以利用有限的资源高效地为多个客户服务,毕竟如果一次请求响应已经结束,而连接仍然没有被关闭,在客户端思考的时间段里,这个连接一直被占用却不提供服务,原创 2013-05-21 16:19:02 · 763 阅读 · 0 评论 -
Cookie技术
1. 什么是Cookie:Cookie,它指的是在客户端访问Web服务器的某个应用时,应用内的某个或某些组件会创建一部分数据(即Cookie),将其放置于响应的头部中(以Set-Cookie响应头的形式)发送给客户端浏览器,浏览器会根据服务器端的编程情况的不同,或将这个Cookie保存在浏览器的内存里(浏览器也是一个程序,运行时操作系统会为它维护一块内存),或将这个Cookie保存在客户端的硬原创 2013-05-21 17:23:44 · 793 阅读 · 0 评论 -
转发
Web应用在响应客户端的一个请求时,有可能响应过程很复杂,需要多个Web组件共同协作,才能生成响应结果。此时,可以使用转发技术。转发的理解:在同一个web应用内部,一个组件将未完成的任务转发给另外一个组件,由另外一个组件进行后续的处理并生成响应结果。最常见的情况是一个Servlet完成了业务逻辑的处理,将数据展现交给一个JSP来完成。转发的编程:1. request.setAttrib原创 2013-05-20 13:48:11 · 616 阅读 · 0 评论 -
抽象类HttpServlet继承GenericServlet
抽象类HttpServlet是GenericServlet类的子类,HttpServlet类为Servlet接口提供了与Http协议相关的通用实现,也就是说,HttpServlet对象适合运行在与客户端采用Http协议通信的Servlet容器或者web服务器中,在开发JavaWeb应用中,自定义的Servlet类一般都扩展HttpServlet类。我们来看一下HttpServlet类的源代码(只摘原创 2013-05-15 11:12:05 · 1075 阅读 · 0 评论 -
Servlet的生命周期
JavaWeb应用的生命周期由Servlet容器来控制,而Servlet作为JavaWeb应用的最核心的组件,其生命周期也由Servlet容器来控制。Servlet的生命周期可以分为三个阶段:初始化阶段、运行时阶段和销毁阶段。在javax.servlet.Servlet接口中定义了三个方法:init()、service()和destroy(),它们将分别在Servlet的不同阶段被Servlet容原创 2013-05-15 17:00:02 · 603 阅读 · 0 评论 -
GenericServlet抽象类是如何实现ServletConfig接口的
将GenericServlet抽象类实现ServletConfig接口中的方法的源代码贴出来:public abstract class GenericServlet implements Servlet, ServletConfig, java.io.Serializable{ public String getInitParameter(String name) {原创 2013-05-15 21:45:30 · 978 阅读 · 0 评论 -
利用后缀匹配让一个Servlet处理雇员表的增删改查
web.xml文件的配置为: ManagerEmpServlet emp.ManagerEmpServlet ManagerEmpServlet *.doWebRoot下有一个addEmp.jsp文件,代码如下: My JSP 'addEmp.jsp' starting page add e原创 2013-05-16 19:44:32 · 940 阅读 · 0 评论 -
GenericServlet抽象类实现了Servlet接口
javax.servlet.GenericServlet抽象类实现了Servlet接口,GenericServlet抽象类为Servlet接口提供了通用实现,它与任何网络应用层协议无关。GenericServlet类除了实现Servlet接口,还实现了ServletConfig接口和Serializable接口。GenericServlet类的部分源代码(实现Servlet接口有关的代码)如下:原创 2013-05-15 00:17:37 · 1601 阅读 · 0 评论 -
购物车模块myshoppingcart
先看看模块的文件目录结构:CartItem.java的源代码:public class CartItem { private Computer c; private int quantity; public Computer getC() { return c; } public void setC(Computer c) { this.c = c; }原创 2013-05-28 11:34:58 · 2787 阅读 · 4 评论 -
EL表达式
EL表达式语言是在JSP2.0版本中引入的新特性,它用于JSP文件中的数据访问。这种表达式语言能简化JSP文件中的数据访问的代码,可用来替代传统的基于形式的Java表达式,以及部分基于形式的Java程序片段。在JSP2.0中,EL是作为JSTL标签库的一部分而存在。但是从JSP2.1开始,把EL变成了独立于JSTL标签库的表达式语言。例如以下代码包含了传统的Java程序片段和Java表原创 2013-05-30 01:51:31 · 856 阅读 · 0 评论 -
Ajax(3):get请求之表单中含有中文时如何处理
当采用get方式向服务器发送请求时,并且表单中被输入了中文时,往往会出现乱码的状况。解决的方法分两步走:① 在利用Ajax发送get请求时,将url放在encodeURI( )的括号里。② 在Tomcat服务器的安装目录下,找到conf文件夹下的server.xml,在 <Connector port="8080" protocol="HTTP/1.1" connecti原创 2013-06-18 22:51:20 · 810 阅读 · 0 评论 -
Ajax(2):post请求
本篇文章与上篇文章大体类似,不同的只不过是利用XMLHttpRequest异步地向服务器发送post请求。除了register.jsp文件,其余三个文件全部保持不变。register.jsp :Insert title herefunction getXmlHttpRequest(){var xhr=null;if((typeof XMLHttpRequest)原创 2013-06-17 02:14:57 · 601 阅读 · 0 评论 -
Ajax(1):get请求
上篇文章讨论了Ajax技术的理论,本篇文章讨论的是实际编程中如何利用XMLHttpRequest异步地向服务器发送get请求,并且不考虑中文问题,中文乱码问题在后续文章中讨论!这里以一个表单注册过程为例讲解Ajax的过程,为简单起见,用户名并没有到实际数据库里做查询验证,这里只简单地认为只要用户名为"tom",即表示已经注册过,必须重新换一个用户名。用户名文本框的焦点一旦失去,Ajax就开始发送请原创 2013-06-17 01:41:03 · 635 阅读 · 0 评论 -
JSON(3):Java的Date类型转换为符合json语法的字符串遇到的问题及其解决办法
接着上篇文章,先看下面的代码:Person.java :public class Person { private Date hire; public Date getHire() { return hire; } public void setHire(Date hire) { this.hire = hire; } public Person() { s原创 2013-06-20 17:35:10 · 1123 阅读 · 0 评论 -
JSON(1):如何将符合json语法的字符串转换为一个JS对象
假设服务器已经向浏览器返回了一个符合json语法的字符串,那我们如何将这个特殊的字符串转换为一个JS对象呢?我们可以利用prototype库中的一个函数evalJSON( )来将符合json语法的字符串转换为一个JS对象。 function test(){ var str='{"name":"tom","age":20}';原创 2013-06-20 02:49:43 · 824 阅读 · 0 评论