下面是一个使用标准操作和内置对象的例子。这个例子扩展了上一个例子,增加了一个注册页面。使用JavaBean,还是用内置对象request来读取请求参数。
目录结构如下:
首先创建一个JavaBean。
User.java
package com.apress.faq;
public class User {
private String firstName;
private String surname;
private String loginName;
private int age;
...get,set方法
}
}
然后对welcome.jsp修改,如下:
<%@ page errorPage="/WEB-INF/errorPage.jsp"
import = "java.util.*,com.apress.faq.*" %>
<html>
<head>
<title>Java FAQ Welcome page!</title>
</head>
<body>
<%
User user =(User)session.getAttribute("user");
if(user==null){
%>
You are not registered!please
<a href = "register.html"> Register</a>
<%
} else{
%>
Welcome to the java FAQ.
<%! FaqCategories f = new FaqCategories(); %>
click a link below for answers to the given topic.
<%Iterator it = f.getAllCategories();
while(it.hasNext()){
String s = (String)it.next();
%>
<p>
<a href="<%=replaceUnderscore(s) %>.jsp"><%=s %></a></p>
<% } %>
<%@ include file = "WEB-INF/footer.jspf" %>
<% } %>
</body>
</html>
<%!
public String replaceUnderscore(String s){
return s.replace(' ','_');
}
%>
regiter.html
<html>
<head>
<title>Registeration page</title>
</head>
<body>
<form action="register.jsp" method="POST">
<table>
<tr>
<td align="right">First name:</td>
<td align="left"><input type="text" name="firstName"></td>
</tr>
<tr>
<td align="right">sur name:</td>
<td align="left"><input type="text" name="surname"></td>
</tr>
<tr>
<td align="right">Login name:</td>
<td align="left"><input type="text" name="loginName"></td>
</tr>
<tr>
<td align="right">Age:</td>
<td align="left"><input type="text" name="firstName"></td>
</tr>
</table>
which topic are you interested in?
<br><input type="checkbox" name="topics" value="hobby">hobby</input>
<br><input type="checkbox" name="topics" value="study">study</input>
<br><input type="checkbox" name="topics" value="thread">thread</input>
<p><input type = "submit" value="Submit" /></p>
</form>
</body>
</html>
register.jsp
<html>
<head>
<title>register user!</title>
</head>
<body>
<jsp:useBean id="user" scope="session" class="com.apress.faq.User">
<jsp:setProperty name="user" property="*" />
</jsp:useBean>
welcome new user,these are the values you submited:
<p>Your firstname is<%=user.getFirstName() %>.</p>
<p>Your surname is<%=user.getSurname() %>.</p>
<p>Your loginName is<%=user.getLoginName() %>.</p>
<p>Your age is<%=user.getAge() %>.</p>
You selected these topics:
<%
String[] topics = request.getParameterValues("topics");
if(topics==null){topics=new String[]{"No topics"};}
for(int i =0;i<topics.length;i++){
%>
<br><%=topics[i] %>
<%
}
%>
<p>Go to <a href="welcome.jsp">Topic List page</a></p>
<%@ include file = "WEB-INF/footer.jspf" %>
</body>
</html>
http是无状态的协议,但是web应用可以通过使用session来保存一个客户端和服务器端的交互信息。第一次访
问一个新网页时,速度会很慢,因为服务器要进行解释和编译,如将jsp编译为servlet。servlet的目标是在
服务器中运行java代码以扩展服务器的能力。HttpServlet是运行在HTTP服务器上的Servlet。这个Servlet接
收从客户端发来的HTTP请求,并且为每个请求创建动态的响应。这个Servlet还要通过ServletContext访问应
用,通过ServletConfig对象访问Servlet的参数。
jsp是html中嵌入java代码,而servlet是java代码嵌入html,这将导致程序非常难以维护,特别是在团队中的java程序员并不擅长web开发的情况下更是如此。可以使用表达式语言(EL)、定制操作和标签库(TL)。
首先是page指令的import属性变成了import语句。
package org.apache.jsp;
import javax.servlet.*;
import javax.servlet.http.*;
import javax.servlet.jsp.*;
import java.util.*;
import com.apress.faq.*;
下面是class语句
public final class welcome_jsp extends org.apache.jasper.runtime.HttpJspBase
implements org.apache.jasper.runtime.JspSourceDependent {
该类扩展了HttpJspBase,Web应用的Servlet扩展自HttpServlet。
接着将jsp页面中的两个声明转化为java源码中的一个变量声明和一个公共方法声明。
jsp的主要部分包含在_jspService()方法中。
public void _jspService(HttpServletRequest request, HttpServletResponse response)
throws java.io.IOException, ServletException {
PageContext pageContext = null;
HttpSession session = null;
ServletContext application = null;
ServletConfig config = null;
JspWriter out = null;
Object page = this;
JspWriter _jspx_out = null;
PageContext _jspx_page_context = null;
在servlet中与之对应的方法是service()。
- 大小: 19.5 KB
分享到:
相关推荐
这个压缩包包含了“创建和部署jsp的web应用”的系列教程的源码,分为三个部分,即1、2、3。通过分析这些源码,我们可以深入理解如何在JavaEE 5环境中构建、配置和部署基于JSP的Web应用程序。 1. **JavaServer Pages...
8. **部署与调试**:了解如何在Tomcat或其他应用服务器上部署JSP应用,以及如何利用IDE如Eclipse或IntelliJ IDEA进行调试,是JavaEE 5开发中不可或缺的部分。 从提供的压缩包文件“JSP_Ex05”来看,可能包含了第五...
Java EE 5规范定义了一个统一的部署描述符(web.xml和ejb-jar.xml),简化了应用程序的部署。同时,应用服务器(如Glassfish、JBoss和WebLogic)提供了运行和管理Java EE应用的容器环境。 ### 10. **国际化和安全性...
Java EE 5 开发指南是Java企业版领域的一本经典入门教材,旨在帮助开发者理解和掌握在企业级应用开发中的各种技术。这本书的核心内容涵盖了Java EE 5平台的主要组件和服务,包括Servlet、JSP、EJB、JPA以及JMS等。...
Java EE 的核心是一组技术规范与指南,它的目标是成为一个支持企业级应用开发的体系结构,简化企业级开发、部署和管理等复杂问题。 Java EE 包括 JSP、JavaBean、JDBC、Servlet JNDI、RMI、EJB、JMS、JavaMail、JMX...
- J2EEWeb应用开发技术教材:Web层的开发是Java EE应用中的关键部分,学习如何构建动态Web应用是必不可少的。 5. 学习工具和资源: - Java EE API技术文档:是开发者获取技术细节和API实现的权威资源。 - Java EE 5...
JavaEE实用开发指南主要涉及了企业级应用开发的关键技术,包括Weblogic服务器、EJB3、Struts2、Hibernate和Spring框架。这些组件共同构建了一个高效、可扩展且灵活的后端架构,使得开发者能够创建复杂的分布式应用...
JavaEE(Java Platform, Enterprise Edition)是Java平台上用于构建企业级应用的一套标准规范,它提供了丰富的API和服务,包括Servlet、JSP、EJB、JMS、JPA等,用于开发分布式、多层架构的应用程序。本实验将指导你...
JavaEE5是Java企业版的一个重要版本,它在2006年发布,极大地简化了企业级应用的开发,引入...通过学习这些知识点,开发者能够熟练地在Eclipse环境下配置和部署JavaEE5应用,利用WebLogic Server进行高效的运行和管理。
JavaEE使用手册是一个综合性的资源集合,包含了Java企业级应用开发的重要技术和框架的详细指南。这份手册涵盖了JavaEE平台的基础,以及Spring框架、Apache服务器和JSP(JavaServer Pages)等关键组件。以下是对这些...
JavaEE和J2EE是企业级Java应用程序开发的框架,主要涵盖了网络应用服务器、Web服务、数据库连接、安全、会话管理等多个方面的技术。源码分析对于深入理解这些技术的工作原理至关重要。本压缩包提供了JavaEE和J2EE的...
7. **CDI(Contexts and Dependency Injection)**:上下文和依赖注入,是JavaEE 6引入的新特性,用于管理对象的生命周期和依赖关系,简化了对象的创建和配置。 8. **JPA(Java Persistence API)**:Java持久化API...
10. JavaEE容器:熟悉Tomcat、Jetty等Web服务器,了解如何部署和运行Servlets和JSP应用。 通过对这些知识点的深入学习和实践,开发者能够熟练掌握Servlets和JSP,从而在Java Web开发领域建立起坚实的基础。
JavaEE,全称为Java Platform, Enterprise Edition,是Java技术在企业级应用开发中的标准平台,它提供了丰富的API和服务器来支持分布式、多层架构的应用程序。 搭建JavaEE实验环境主要包括以下几个关键步骤: 1. *...
首先,JavaEE(Java Platform, Enterprise Edition)是Java技术在企业级应用开发中的标准,它包含了一系列用于构建和部署分布式、多层应用程序的组件和服务。JavaEE平台基于JavaSE(Java Standard Edition)之上,...
它定义了开发、部署和管理分布式应用程序的一系列标准和技术。JavaEE是Oracle公司(原Sun Microsystems)推出的,旨在提供一个用于创建可扩展、健壮且安全的企业级应用的框架。 JavaEE平台基于JavaSE(Java ...
《JavaEE参考手册》是Java企业版(Java Enterprise Edition,简称JavaEE)开发的重要参考资料,它涵盖了JavaEE平台的各种技术和规范,旨在帮助开发者理解和掌握在企业级应用开发中的核心技术。JavaEE是Sun ...
【JavaEE文档】是关于Java企业版(Java Enterprise Edition)技术体系的重要参考资料,它涵盖了Java在服务器端开发的各种...结合上述文件,开发者能够系统性地学习和实践JavaEE技术,提升其在企业级应用开发中的能力。
5. **文档**:可能有项目介绍、开发指南、数据库设计文档等,帮助理解项目结构和功能。 6. **测试代码**:JUnit或其他测试框架的代码,用于验证系统的功能正确性和性能指标。 7. **部署脚本**:用于在服务器上部署...
通过分析这个项目,开发者可以学习到JavaEE平台上的Web开发实践,包括MVC(模型-视图-控制器)设计模式的应用、数据库设计原则、JDBC(Java数据库连接)操作、以及如何使用JSP和Servlet进行前后端交互。同时,也能...