Ubuntu14.04搭建JSP与Servlet开发环境及其测试详解
一,搭建JDK开发环境
1,在Java官网下载Jdk软件包,我的系统是64位Ubuntu14.04,所以选择jdk-8u25-linux-x64.tar.gz。
2,解压Jdk软件包
tar xvzf jdk-8u25-linux-x64.tar.gz
3,使用管理员权限拷贝解压的文件夹到/usr/lib/jvm目录下,无需安装
sudo cp -r jdk1..0_25 /usr/lib/jvm/
4,设置环境变量,在/etc/profile的后面添加如下内容,然后输入 source /etc/profile,当然重启的话也会重新加载的
#set java environment
export JAVA_HOME=/usr/lib/jvm/jdk1..0_25
export JRE_HOME=${JAVA_HOME}/jre
export CLASSPATH=./:${JAVA_HOME}/lib:${JRE_HOME}/lib
export PATH=${JAVA_HOME}/bin:$PATH
5,在shell中输入java -version,得到如下结果说明安装成功
注:后面在切换到root账户下时使用javac弹出openjdk未安装的错误提示,原因是前面设置的环境变量对root账户无效
6,下面设置root账户的环境变量,在/etc/environment文件中做如下修改
在$PATH末尾添加
:/usr/lib/jvm/jdk1.8.0_25/bin,如下所示:
PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/usr/lib/jvm/jdk1./bin
在文件末尾加入第4步中的三条语句设置三个环境变量
export JAVA_HOME=/usr/lib/jvm/jdk1.
export JRE_HOME=${JAVA_HOME}/jre
export CLASSPATH=./:${JAVA_HOME}/lib:${JRE_HOME}/lib:/home/yxl/download/tomcat/lib/servlet-api.jar
export PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/usr/lib/jvm/jdk1./bin
输入如下语句使修改的环境变量立即生效而不用重启
source /etc/environment
再次输入java -version,得到如下结果说明修改成功
注:关于修改环境变量的一个发现就是,虽然修改了/etc/profile和/etc/environment,在重启后重新登录bash时,对于 root账户该环境变量依然无效,可以利用source命令对配置文件进行更新,但是每次进入root账户都得这样太麻烦了,一个技巧就是将所有对环境变 量的修改添加到.bashrc文件中,这样在每次bash登录时就会自动加载了,一劳永逸。我的.bashrc文件末尾如下图所示,对于PATH采用的是具体路径指定,没有将$PATH本身作为右值的一部分,这样是为了避免重复。最后面的CATALINA_HOME环境变量是tomcat的安装路径:
export JAVA_HOME=/usr/lib/jvm/jdk1.
export JRE_HOME=${JAVA_HOME}/jre
export CLASSPATH=./:${JAVA_HOME}/lib:${JRE_HOME}/lib:/home/yxl/download/tomcat/lib/servlet-api.jar
export PATH=.:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/usr/lib/jvm/jdk1./bin
export CATALINA_HOME=/home/yxl/download/tomcat/
二,安装JSP容器tomcat
tomcat可以与Apache共同搭建Web服务器,Apache负责静态HTML文件,tomcat负责解析JSP文件,也可以单独使用,这里为了学习JSP的开发,单纯使用tomcat就足够了。
1,从官网http://tomcat.apache.org/下载最新版的tomcat,现在的最新版为8.0
2,解压下载的软件包
tar xvzf apache-tomcat-8.0..tar.gz
3,进入解压文件下的bin目录,可执行文件startup.sh和shutdown.sh分别用于启动和关闭tomcat服务器。
4,启动后在浏览器中输入localhost:8080/,得到如下界面说明启动成功(tomcat默认使用8080端口),网页默认根目录位于解压文件下的:xxx/webapps/ROOT/index.html
5,测试JSP运行
在tomcat网页根目录webapps/ROOT/下新建test目录,并在test目录下新建如下JSP文件,命名为test.jsp
xxx/tomcat_install_dir/webapps/test/test.jsp
<html>
<body>
<center>
Now time is: <%=new java.util.Date()%>
</center>
</body>
</html>
在浏览器中输入localhost:8080/test/test.jsp,得到如下页面说明运行成功
三,搭建Servlet环境
1,修改环境变量CLASSPATH,在末尾添加servlet-api.jar的路径,CLASSPATH修改后的内容如下:(我的tomcat解压文件被重命名为tomcat,根据tomcat解压路径不同,添加的内容也不同)
如果不添加如上内容,不能正常编译Servlet类,编译时出现如下错误:
四,测试Servlet开发环境
1,Servlet开发简介
Servlet是运行在Web服务器上的Java程序,它读取浏览器发出的HTTP请求,生成结果,并向浏览器发送文档,一般是HTML格式。
Servlet开发时遵循一定的目录规则,在webapps下,我们新建自己开发用的项目文件夹xxx/tomcat/webapps/test,所有的文件都在该文件夹及其子目录下。为了能够正常运行Servlet程序,我们需要新建xxx/tomcat/webapps/test/WEB-INF子目录,在WEB-INF目录下新建xxx/tomcat/webapps/test/WEB-INF/classes子文件夹,用于存放我们编写的Servlet类的编译结果,为了方便,我们将编写的.java源程序也放在该目录下。在实际部署时,有多种方式,例如将生成的类打包成jar格式,那么jar格式的文档需要放置在另一个需要新建的子目录xxx/tomcat/webapps/test/lib下。
web.xml用于向Tomcat注册我们编写的Servlet类,可以将xxx/tomcat/webapps/ROOT/WEB-INF/web.xml拷贝到我们的xxx/tomcat/webapps/test/WEB-INF/目录下。web.xml示例代码及元素介绍见下一步。注意,如果没有此web.xml文件以及加入对应的类注册信息,在浏览器中输入URL后会出现404 NOT FOUND 错误。
2,测试不使用包的Servlet
示例代码:
a,xxx/tomcat/webapps/test/WEB-INF/classes/HelloServlet.java,编译后的文件为xxx/tomcat/webapps/test/classes/HelloServlet.class
import java.io.*;
import javax.servlet.*;
import javax.servlet.http.*; public class HelloServlet extends HttpServlet
{
public void doGet(HttpServletRequest request,
HttpServletResponse response)
throws ServletException, IOException
{
response.setContentType("text/html");
PrintWriter out = response.getWriter();
out.println("<html><head><title>head</title></head><body><h1>Hello Servlet</h1></body></html>");
}
}
b,xxx/tomcat/webapps/test/WEB-INF/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://xmlns.jcp.org/xml/ns/javaee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee
http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd"
version="3.1"
metadata-complete="true"> <display-name>Welcome to Tomcat</display-name>
<description>
Welcome to Tomcat
</description> <servlet>
<servlet-name>Test1</servlet-name>
<servlet-class>HelloServlet</servlet-class>
</servlet> <servlet-mapping>
<servlet-name>Test1</servlet-name>
<url-pattern>/servlet1</url-pattern>
</servlet-mapping> </web-app>
代码解释:1-28行是头部和根元素,无需理会,30-38行是添加进去的类注册信息,servlet-name元素的值Test1任意命名,合法即可。servlet-class元素的值HelloServlet是类名,这个肯定不能错,url-pattern表示从浏览器中输入URL的格式,前面需要加上我们的项目文件夹的名称。完整的一个URL如下:
http://localhost:8080/test/servlet1
在初次开发的时候经常遇到的一个问题就是浏览器中输入URL后得到404错误,这时需要仔细检查下面几个方面,也是我已经犯过的错误:
关键字是否输入错误,例如servlet-pattern被我写成了servlet-patter,少一个,多一个字符都不行。
类名称,也就是servlet-class元素中的值是否正确。
url-pattern元素的值必须以“/”或者“*.”开头,有一次我将url-pattern的值赋成了servlet1,结果总是404错误,浪费了好几个小时来排错。
所有的注册信息都必须在<web-app>和</web-app>之间。
所有的元素必须成对存在,<servlet>必须以标签</servlet>结束,这也是xml文件的规则。
每次修改web.xml或者Servlet代码之后都需要重新启动Tomcat。
c,在浏览器中输入:http://localhost:8080/test/servlet1,不出意外的话得到如下结果,如果是404对这步骤b进行检查:
3,测试使用包的Servlet
相比不使用包的Servlet,多了两个变化,一个是需要新建一个子目录,名称就是包名,比如包名称为coreservlets,那么新建子目录为
xxx/tomcat/webapps/test/WEB-INF/classes/coreservlets。二是web.xml文件的servlet-class需要改成“包名.类名”,即多了一个点号,下面直接上代码。
a,xxx/tomcat/webapps/test/WEB-INF/classes/coreservlets/HelloServlet.java,编译后的结果为xxx/tomcat/webapps/test/WEB-INF/classes/coreservlets/HelloServlet.class
package coreservlets; import java.io.*;
import javax.servlet.*;
import javax.servlet.http.*; public class HelloServlet extends HttpServlet
{
public void doGet(HttpServletRequest request,
HttpServletResponse response)
throws ServletException, IOException
{
response.setContentType("text/html");
PrintWriter out = response.getWriter();
out.println("<html><head><title>Hello</title></head><body><h1>Hello Servlet</h1>" +
"</body></html>");
}
}
b,xxx/tomcat/webapps/test/WEB-INF/web.xml
<?xml version="1.0" encoding="ISO-8859-1"?>
<web-app xmlns="http://xmlns.jcp.org/xml/ns/javaee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee
http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd"
version="3.1"
metadata-complete="true"> <display-name>Welcome to Tomcat</display-name>
<description>
Welcome to Tomcat
</description> <servlet>
<servlet-name>Test1</servlet-name>
<servlet-class>HelloServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>Test1</servlet-name>
<url-pattern>/servlet1</url-pattern>
</servlet-mapping> <servlet>
<servlet-name>Test2</servlet-name>
<servlet-class>coreservlets.HelloServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>Test2</servlet-name>
<url-pattern>/servlet2</url-pattern>
</servlet-mapping> </web-app>
为了节省篇幅,删掉了web.xml自带的注释。23-30行是我们为了coreservlets.HelloServlet添加的类注册信息,只是在servlet-class元素的值中加上了一个包名。
c,在浏览器中输入http://localhost:8080/test/servlet2,得到如下结果
呼,终于大功告成了,折腾了好久
Ubuntu14.04搭建JSP与Servlet开发环境及其测试详解的更多相关文章
- Ubuntu14.04搭建cocos2dx2.2.5开发环境(超级具体)
一 下载解压 官方下载地址:http://www.cocos2d-x.org/download 下载下来之后解压完毕之后会得到一个文件夹cocos2d-x-2.2.5 二 编译 1 安装依赖 cd到c ...
- Ubuntu 12.04搭建MTK 6577 安卓开发环境
Ubuntu 12.04搭建 MTK 6577安卓开发环境 1. 下载并安装Vmware虚拟机: 2. 下载并在虚拟机上安装Ubuntu 12.04 iso 安装包:下载地址: ...
- Ubuntu14.04安装pycharm用于Python开发环境部署,并且支持pycharm使用中文输入
一.目标 实现在Linux下用pycharm调试工具/Python开发 Linux使用vi/vim工具写Python,缺点:调试不方便,无代码提示.跳转等诸多功能. Windows使用idle/pyc ...
- Ubuntu14.04下完美安装cloudermanage多种方式(图文详解)(博主推荐)
说在前面的话 我的机器是总共4台,分别为ubuntucmbigdata1.ubuntucmbigdata2.ubuntucmbigdata3和ubuntucmbigdata4. ClouderaMan ...
- 在 IntelliJ IDEA 中配置 JSF 开发环境的入门详解
JSF 作为 JavaEE 官方标准,在了解并掌握其基本开发技术后,对于功能要求较高.业务流程复杂的各种现代 Web 应用程序开发将会成为非常合适且强大的高效率开发利器.JSF 的开发环境搭建涉及到在 ...
- IDEA里如何安装Python插件打造开发环境(图文详解)
前言 python是一种功能强大和适用面很广的开发语言,在大数据应用和机器学习日益流行的年代,python凭借其简洁.易用和可扩展性获得很多用户的支持,近年来使用率高速增长.python环境下,集成了 ...
- ubuntu14.04搭建Hadoop2.9.0集群(分布式)环境
本文进行操作的虚拟机是在伪分布式配置的基础上进行的,具体配置本文不再赘述,请参考本人博文:ubuntu14.04搭建Hadoop2.9.0伪分布式环境 本文主要参考 给力星的博文——Hadoop集群安 ...
- Ubuntu 14.04下搭建Node.js的开发环境
最近想找一个轻量级且支持快速开发的服务开发平台,选来选去选择了Node.js,当时有几种选择: Python + Django(用过Django,虽然开发快速,但是感觉性能并不太好). Ruby + ...
- 【java项目实战】一步步教你使用MyEclipse搭建java Web项目开发环境(一)
首先.在開始搭建MyEclipse的开发环境之前.还有三步工具的安装须要完毕,仅仅要在安装配置成功之后才干够进入以下的java Web项目开发环境的搭建. 1.安装工具 第一步,下载并安装JDK,到官 ...
随机推荐
- spring mvc 接入cas登录
费劲千辛万苦开发出来的系统要接入sso 让我头大还好有大佬帮忙 首先在配置文件中写入启动的ip地址 HOST=http://127.0.0.1:8080/ 地址写你的地址和端口 然后在pom文件中导入 ...
- Openstack组件部署 — Overview和前期环境准备
目录 目录 前言 软件环境 Openstack 简介 Openstack 架构 Openstack Install Overview 创建Node虚拟机 环境准备 基础设置 Install OpenS ...
- 购买 Linux VPS 服务器后简单的安全设置
我们在购买了 Linux 系统的 VPS 或服务器后,一般的商家都会给你一个 root 权限的账号,并且默认的密码不会太长,这是很不安全的.经常有客户因为弱口令而被黑客暴力破解密码导致 VPS 服务器 ...
- jekyll介绍安装.github静态页面工具
jekyll build # => 当前文件夹中的内容将会生成到 ./site 文件夹中. $ jekyll build --destination <destination> # ...
- js 中常用的设计模式
常用的设计模式: 工厂方法模式.单例模式.适配器模式.组合模式.迭代子模式 (23种设计模式) 总体来说设计模式分为三大类: ①创建型模式 共五种:工厂方法模式.抽象工厂模式.单例模式.建造者模式.原 ...
- LightOJ 1248 Dice (III) (期望DP / 几何分布)
题目链接:LightOJ - 1248 Description Given a dice with n sides, you have to find the expected number of t ...
- JPA的入门CRUD
主要目的: 操作实体类就相当于操作数据库表 建立两个映射关系: 实体类和表的映射关系 实体类中的属性和表中字段的映射关系 不在关注sql语句 常见的orm框架:Mybatis(ibatis).Hibe ...
- 那些年踩过的eleUl上传图片的坑?
html : <el-upload :headers="header" // 请求头参数(一般包含token,认证参数authorization) :data="u ...
- 前端学习(二)css样式笔记(笔记)
background-image:url(img/xiaofeiji.jpg)背景图:url(图片路径):(背景图默认平铺) background-repeat:repeat-x/repeat-y/n ...
- Java中udp/tcp的发送和接收
InetAddress UDP例程: 发送数据: 接收数据: 结果: TCP例程: 发送数据: 接收数据: 结果: