Java WEB 开发环境
来源:互联网 发布:苹果点位图软件 编辑:程序博客网 时间:2024/05/17 22:22
工具 & 环境
- Ubuntu-16.04 64-bit
- Java 1.8.0
- Tomcat 9.0.0
WEB 开发
首先,需要安装Java开发环境,接着下载Tomcat软件包。在终端中利用tar -zxvf apache-tomcat-version.tar.gz
命令解压文件,解压后目录如下:
- /bin: 存放启动和关闭Tomcat的脚本文件。
- /lib: 存放Tomcat服务器及所有Web应用程序都可以访问的JAR文件。
- /conf: 存放Tomcat服务器的各种配置文件。
- /logs: 存储Tomcat的日志文件。
- /temp: 存放Tomcat运行时产生的临时文件。
- /webapps: 当发布Web应用程序时,通常把Web应用程序的目录及文件存放在这个目录。
- /work: Tomcat将JSP生成的Servlet源文件和字节码文件放到这个目录。
备注:version对应于Tomcat的版本。
测试Tomcat是否能正常运行:
$ cd apache-tomcat-version$ bin/startup.shUsing CATALINA_BASE: /home/japin/Code/Java/NetDisk/apache-tomcat-9.0.0.M8Using CATALINA_HOME: /home/japin/Code/Java/NetDisk/apache-tomcat-9.0.0.M8Using CATALINA_TMPDIR: /home/japin/Code/Java/NetDisk/apache-tomcat-9.0.0.M8/tempUsing JRE_HOME: /opt/jdkUsing CLASSPATH: /home/japin/Code/Java/NetDisk/apache-tomcat-9.0.0.M8/bin/bootstrap.jar:/home/japin/Code/Java/NetDisk/apache-tomcat-9.0.0.M8/bin/tomcat-juli.jarTomcat started.
如果出现上面提示则说明Tomcat测试正常运行。
一个简单的Java WEB程序需要以下几步:
- 编写源文件
- 编译源文件
- 部署程序
- 测试访问
编写程序
新建NetDisk.java文件,代码如下:
package netdisk;import java.io.*;import javax.servlet.*;import javax.servlet.http.*;public class NetDisk extends HttpServlet { public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { response.setContentType("text/html"); PrintWriter out = response.getWriter(); out.println("<html>"); out.println("<head><title>NetDisk</title></head>"); out.println("<body>"); out.println("Welcome to NetDisk! This is a test."); out.println("</body>"); out.println("</html>"); }}
编译程序
若直接通过javac NetDisk.java
编译程序,会得到如下错误:
NetDisk.java:4: 错误: 程序包javax.servlet不存在import javax.servlet.*;^NetDisk.java:5: 错误: 程序包javax.servlet.http不存在import javax.servlet.http.*;^NetDisk.java:7: 错误: 找不到符号public class NetDisk extends HttpServlet { ^ 符号: 类 HttpServlet NetDisk.java:8: 错误: 找不到符号 public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { ^ 符号: 类 HttpServletRequest 位置: 类 NetDisk NetDisk.java:8: 错误: 找不到符号 public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { ^ 符号: 类 HttpServletResponse 位置: 类 NetDisk NetDisk.java:8: 错误: 找不到符号 public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { ^ 符号: 类 ServletException 位置: 类 NetDisk 6 个错误
这是由于在编译时未能找到javax.servlet
和javax.servlet.http
这两个包及包中的类。通过在编译时指定servlet-api.jar
路径及文件名即可解决。
例如,默认servlet-api.jar
在apache-tomcat-version/lib/
目录下,我将其解压到当前工作目录,即与NetDisk.java
在同一目录,则编译命令如下:
$ javac -cp .:./apache-tomcat-version/lib/servlet-api.jar NetDisk.java
当然,更为简单的做法是将servlet-api.jar
指定到系统的CLASSPATH
环境变量中,这些样就可以通过javac NetDisk.java
命令直接编译。
经过上述步骤后,就会在当前路径下生成NetDisk.class文件。
程序部署
Tomcat服务器通常需要将Web应用程序放在webapps目录下。在这个例子中netdisk应用程序的目录如下:
- /netdisk: Web应用程序的根目录,属于此应用程序的所有文件都放在该目录下。
- /netdisk/WEB-INF: 存放Web应用程序部署的描述文件web.xml。
- /netdisk/WEB-INF/classes: 存放Web应用程序用到的类文件。
- /netdisk/WEB-INF/lib: 存放Web应用用到的jar文件。
- /netdisk/WEB-INF/web.xml: 该文件是Web应用程序部署的描述文件,用来存放整个应用程序的配置和部署信息。
下面是web.xml文件的内容:
<?xml version="1.0" encoding="UTF-8"?><web-app version="2.4" xmlns="http://java.sun.com/xml/ns/j2ee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd"> <servlet> <servlet-name>NETDISK</servlet-name> <servlet-class>netdisk.NetDisk</servlet-class> </servlet> <servlet-mapping> <servlet-name>NETDISK</servlet-name> <url-pattern>/welcome</url-pattern> </servlet-mapping></web-app>
web.xml文件必须是格式良好的XML。其中第一行是xml版本和编码的声明,第二行在根元素上声明了XML Schema的名称空间。
代码中的和元素以及它们的子元素,用来部署NetDisk。元素用于声明一个servlet。其中用于指定Servlet的名字。虽然子元素可以任意指定一个Servlet名字,但在同一个Web应用程序中,每一个Servlet的名字必须是唯一的,而且不能为空。上述例子中的Servlet取名为NETDISK。由于子元素用于指定Servlet类时要给出完整的限定名,如果有包名,同时要给出包名,因此上述Servlet的完整限定名是netdisk.NetDisk。
元素用于在Servlet和URL样式之间定义一个映射。它的子元素指定的Servlet名字必须与元素的子元素给出的名字相同。子元素用于指定对应Servlet的URL路径,该路径是相对于Web应用程序的路径,配置为/welcom,这样就可以通过http://localhost:8080/netdisk/welcome
来访问。
访问测试
在浏览器中访问http://localhost:8080/netdisk/welcome
,页面显示Welcome to NetDisk! This is a test.
。默认采用的是8080
端口,如果修改了默认端口,则需要进行相应的修改。
参考
[1] 朱福喜,《面向对象的Java程序设计》
- java web 开发环境
- Java WEB 开发环境
- Java Web-开发环境
- Java Web开发环境搭建
- java web开发环境搭建
- java web开发环境配置
- Java web 开发环境配置
- Java Web开发环境配置
- java web开发环境搭建
- Java Web开发环境配置
- Java Web开发环境搭建
- Java web开发环境搭建
- Java Web开发环境配置
- Java Web开发环境配置
- Java Web开发环境配置
- Java Web开发环境配置
- Java Web开发环境配置
- Java Web开发环境配置
- Android App 性能优化方案
- PHP Ajax 跨域问题最佳解决方案
- 向量积(叉乘)
- 点击读秒获取验证码按钮实现
- Leetcode Valid Parentheses
- Java WEB 开发环境
- Linux常用命令大全
- 去掉IE10以上文本框后的X按钮
- Neural Networks and Deep Learning 学习笔记(五)
- Java关键字final、static使用总结
- 转场动画
- Mysql自学笔记一
- 正向代理和反向代理的区别
- android 向webview传值