`

第一篇:2年后的第一个Java Web Demo

阅读更多

从事Java开发已经两年了,但是由于工作的关系,对Java Web还是个freshman。今天做了一个Java Web的简单Demo,对这个Demo的总结如下。

环境:

JDK:1.5.0_12-b04

Tomcat:apache-tomcat-6.0.18

MySQL:mysql-5.1.32-win32

这些软件可以从各自的官方网站上下载得到。

Demo制作过程:

(1)在Tomcat中配置MySQL数据源。

修改$CATALINA_HOME/conf目录中的context.xml,增加以下配置:

 <Resource name="jdbc/mysqlDB" auth="Container" type="javax.sql.DataSource"
               maxActive="100" maxIdle="30" maxWait="10000"
               username="root" password="" driverClassName="com.mysql.jdbc.Driver"
               url="jdbc:mysql://localhost:3306/mysql?autoReconnect=true"/>

这里有个学习点,就是Resource 元素的各个属性分别代表什么含义?

(2)把包含MySQL的JDBC驱动的jar包放入到$CATALINA_HOME/lib目录。

(3)在$CATALINA_HOME/webapps目录,新建testjdbc目录,testjbdc的目录结构

    +testjdbc/

     |

     |——+WEB-INF/

     |       |

     |       |——+lib/

     |       |

     |       |——+web.xml

     |

     |——+index.jsp

(4)index.jsp的内容:

<%@ taglib uri="http://java.sun.com/jsp/jstl/sql" prefix="sql" %>
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>

<sql:query var="rs" dataSource="jdbc/TestDB">
select host, user, password from user
</sql:query>

<html>
  <head>
    <title>DB Test</title>
  </head>
  <body>

  <h2>Results</h2>
  
<c:forEach var="row" items="${rs.rows}">
    Foo ${row.host}<br/>
    Bar ${row.user}<br/>
</c:forEach>

  </body>
</html>

 

(5)web.xml内容:

<?xml version="1.0" encoding="ISO-8859-1"?>
<!--
  Licensed to the Apache Software Foundation (ASF) under one or more
  contributor license agreements.  See the NOTICE file distributed with
  this work for additional information regarding copyright ownership.
  The ASF licenses this file to You under the Apache License, Version 2.0
  (the "License"); you may not use this file except in compliance with
  the License.  You may obtain a copy of the License at

      http://www.apache.org/licenses/LICENSE-2.0

  Unless required by applicable law or agreed to in writing, software
  distributed under the License is distributed on an "AS IS" BASIS,
  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
  See the License for the specific language governing permissions and
  limitations under the License.
-->
<web-app xmlns="http://java.sun.com/xml/ns/javaee"
   xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
   xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"
   version="2.5"> 

  <display-name>Jdbc Test</display-name>
  <description>
     Tomcat Jdbc Test.
  </description>
</web-app>

(6)在testjdbc/WEB-INF/lib目录中放入 JSTL的jstl.jar和standard.jar,在Tomcat的document中,建议务必使用1.1.x release,可以从http://jakarta.apache.org/site/downloads/downloads_taglibs-standard.cgi得到。

(7)mysqld --console启动MySQL。

(8)$CATALINA_HOME/bin目录,startup.bat启动Tomcat。

(9)在浏览器地址栏敲入http://127.0.0.1:8080/testjdbc/可以看到从mysql库,user表取出的数据。

(10)在Tomcat主页可以进入管理页面,http://127.0.0.1:8080/manager/html,第一次进入时要求输入用户名和密码,Tomcat安装时,是没有用户名和密码的,修改$CATALINA_HOME/conf/tomcat-users.xml:

<?xml version='1.0' encoding='utf-8'?>
<tomcat-users>
  <role rolename="manager"/>
  <role rolename="admin"/>
  <user username="admin" password="admin" roles="admin,manager"/>
</tomcat-users>

 在管理页面的用户名密码框中填入admin/admin即可进入管理页面,看到部署过的所有app。

 

 

 

 

分享到:
评论

相关推荐

    成百上千个Java 源码DEMO 4(1-4是独立压缩包)

    多人聊天+用户在线 21个目标文件 摘要:JAVA源码,媒体网络,山寨QQ,Java聊天程序 Java编写的山寨QQ,多人聊天+用户在线,程序分服务端和客户端,典型C/S结构, 当用户发送第一次请求的时候,验证用户登录,创建一个该...

    成百上千个Java 源码DEMO 3(1-4是独立压缩包)

    多人聊天+用户在线 21个目标文件 摘要:JAVA源码,媒体网络,山寨QQ,Java聊天程序 Java编写的山寨QQ,多人聊天+用户在线,程序分服务端和客户端,典型C/S结构, 当用户发送第一次请求的时候,验证用户登录,创建一个该...

    一个日历 Demo程序

    这个描述指出该Demo程序在2011年10月16日创建或更新,这可能是一个早期版本,但它的价值在于学习和理解日历功能的实现。尽管年代稍远,但基本的日历逻辑和设计原理仍然适用,因此,它对于初学者或想深入理解日期与...

    java2 实用教程(第三版) 实验指导 上机实验1 初识java

    上机实验1主要围绕“初识Java”这一主题展开,旨在帮助读者理解Java的基本概念、环境搭建以及编写第一个Java程序的过程。 一、Java语言简介 Java是一种面向对象的、跨平台的编程语言,由Sun Microsystems公司(现已...

    SwingX Demo

    SwingX Demo是一个基于Java Swing的扩展库演示项目,它为开发者提供了丰富的用户界面组件和功能,以增强标准Swing库的功能。SwingX库在Java社区中被广泛使用,尤其是对于开发桌面应用的程序员。由于官方WebStart服务...

    java入门ppt下载

    【Java入门知识详解】 Java是一种广泛使用的高级编程语言,由Sun Microsystems公司于90...在实际操作中,可以下载Java SDK,设置环境变量,开始编写并运行第一个"Hello, World!"程序,逐步掌握Java的语法和编程技巧。

    JAVA 理论知识

    - **编写第一个 Java 程序:** - **源代码:**一个简单的 HelloWorld 程序,其中 `System.out.println()` 方法用于打印输出信息。 - **编译:**使用 `javac` 命令将 `.java` 文件编译成 `.class` 字节码文件。 - ...

    SSO CAS 单点登录实例SSOAuth+SSOWebDemo1+SSOWebDemo2.zip

    请输入第一个web应用的测试URL(test.jsp),例如http://wangyu.prc.sun.com:8080/SSOWebDemo1/test.jsp,如果是第一次访问,便会自动跳转到登录界面,如下图。 使用系统自带的三个帐号之一登录(例如,用户名:...

    java日历控件Calendar 多种类型

    然而,Java标准库本身并不包含一个图形化的日历控件,这与许多其他编程语言不同。因此,开发人员通常需要借助第三方库或自定义组件来实现这样的功能。在提供的链接中提到的"My97 DatePicker"是一个非常流行的...

    RSA加解密java与js互通.zip

    总的来说,这个Demo是一个实用的示例,展示了如何在Java和JavaScript之间使用RSA算法进行安全的数据交换,这对于任何需要在前后端之间传输敏感信息的Web应用都是至关重要的。开发者可以通过研究这个Demo,学习如何在...

    支付宝移动支付接口DEMO

    这个DEMO主要针对的是2015年1月118日版本的支付宝钱包支付接口开发包2.0标准版。 在集成支付宝移动支付接口时,首先需要了解以下几个关键知识点: 1. **API接入流程**:通常包括注册成为支付宝开放平台开发者、...

    农业银行支付BRIDGE新版商户直连DEMO_PHP版本(V1.2)_2019.08.13.zip

    农业银行支付BRIDGE新版商户直连DEMO_PHP版本(V1.2)是针对商家接入农业银行支付系统的一个示例程序,旨在帮助开发者快速理解和实现与农业银行支付接口的对接。这个DEMO提供了完整的PHP代码,让商家可以利用这些...

    JFreeChart架包+demo+源码

    使用 JFreeChart 的第一步是理解其基本组件,如Dataset、Plot、ChartFactory等。Dataset 是存储数据的地方,Plot 是定义如何绘制数据的,而 ChartFactory 提供了一系列的工厂方法用于快速创建常见类型的图表。 1. *...

    日期控件demo

    这个"日期控件demo"可能是一个示例程序,展示了如何在应用程序中集成日期选择功能,供开发者学习和参考。它可能是用各种编程语言如JavaScript、Java、Python、C#等实现的,或者是特定框架或库的一部分,比如React、...

    Google ZXing制作的条形码、二维码的生成、扫描Demo 源码.zip

    Google ZXing项目始于2007年,旨在为多种平台提供便捷的条码处理能力,包括Java、Android、iOS、Web等。这个压缩包中的源码是一个演示应用,展示了如何使用ZXing库来创建、读取条形码和二维码。 生成条形码和二维码...

    demo3:vdytrftyt

    理解这些概念是学习Java的第一步。 2. **面向对象编程**: Java是面向对象的语言,其核心概念包括封装、继承和多态。封装允许隐藏实现细节,提高代码的安全性和可维护性;继承使子类可以共享父类的属性和方法,减少...

    《跟我学Java 26日通》第 1 天 Oracle基本命令与简单查询(笔记01)

    ### 《跟我学Java 26日通》第 1 天 Oracle...这些基础知识对于初学者来说是非常重要的第一步,为进一步学习Oracle数据库管理和开发打下了坚实的基础。接下来的学习将更加深入地探讨Oracle数据库的各种特性和高级功能。

    第五周寒假作业.zip

    在给定的“第五周寒假作业.zip”压缩包文件中,我们可以看到包含了一些Java类文件,具体为:Demo3.class、Dome5.class、Demo.class、Demo4.class和Demo2.class。这些文件是Java编程语言编译后的结果,通常表示一个或...

    python基础语法&demo.pdf

    - **集合**:表示一个无序且不重复的元素集合,例如`{1, 2, 3}`。 - **字典**:表示一组无序的键值对集合,例如`{'name': 'Alice', 'age': 25}`。 2. **控制流** - **条件语句**:使用`if`、`elif`和`else`进行...

Global site tag (gtag.js) - Google Analytics