【Servlet】脱离IDE的Servlet实现
2016-07-08 16:23
375 查看
在使用MyEclipse时候,右击“new”,选择”Servlet”就可以在项目中新建出servlet文件,相应地在工作空间目录以及tomcat文件夹中创建了对应.java和.class文件。然而通过脱离IDE环境,手动操作创建并运行servlet程序,会对原理更加明白。
【基本概念】
1、工作空间
这是代码保存的位置,仅仅是在打开IDE的时候,代码从这里的文件中调用而已。比如,在我的电脑中将我的小例子放到”D:\drptest”目录下,这就是工作空间。
2、运行空间
这是指java程序借助于web服务器运行的时候代码存放的地址,常用的web服务器有jboss,tomcat,以tomcat为例,将工作空间中的.java文件编译成.class之后,放到tomcat下,程序运行时,就会实例化这里的.class文件。
3、 Tomcat目录
在tomcat文件夹下先介绍3个文件夹:
(1)bin:这里存放了很多tomcat封装的批处理文件,例如启动tomcat服务的startup.bat,关闭tomcat服务shutdown.bat,查询jdk版本的version.bak等。
(2)common:该文件夹下的lib目录中,有一些项目必备的jar包,就像Servlet-api.jar,我们写servlet类的时候,类似” importjavax.servlet.http.*;”就是指向这里。
(3)webapps:这里是真正的运行空间,webapps下是具体的项目文件夹,这里以”test-servlet”为例,test-servlet下有html页面,以及WEB-INF文件,WEB-INF目录结构如下:
1.Lib文件夹用于存放引用的第三方jar包,类似于jdbc.jar以及后面的Manager逻辑类的jar文件。
2.classes文件夹用于存放编译之后的.class文件。
3.web.xml是用来配置如何访问.class文件,从而通过html访问到该类。
So,如果不使用ide环境,这些个文件夹的配置,就得自己来操作,很有意思,接着来。
【创建过程】
(1)新建html和java文件
在工作空间“D:\drptest”中新建一个login.html文件和一个LoginServlet.java文件,以“登录”为例:
Html代码如下:
<html>
<head>
<title>登录</title>
</head>
<body>
<form action="loginServlet">
用户:<input type="text" name="username"><br>
密码:<input type="password" name="password"><br>
<input type="submit" value="登录">
</form>
<body>
</html>
对于form表单,默认以get形式发送请求,若以post形式发送请求,加入<method=”post”>即可。
LoginServlet.java代码如下:
import javax.servlet.http.*;
public class LoginServlet extends HttpServlet {
public void doGet(HttpServletRequest request,
HttpServletResponse response) throws ServletException, java.io.IOException{
//返回值为字符串,参数类型也为字符串
String username = request.getParameter("username");
String password = request.getParameter("password");
//将用户名和密码打印出来
System.out.println("username=" + username);
System.out.println("password=" + password);
//将信息返回到html页面当中,"text/html"是返回的格式,加入charset则是返回的编码方式
response.setContentType("text/html");
response.getWriter().println("Login Success!!!");
}
}
该类中有两个必备的方法:doGet以及doPost,二者与html页面发送的get请求和post请求相对应。这里以doGet为例,登录成功返回”LoginSuccess!!!”内容。
(2)编译.java程序
打开dos窗口并进入drptest目录,输入”javac LoginServlet.java”:
如图,报错了,找不到HttpServlet,怎么回事?明明是在代码中import了这个类啊,原因在于没有将common文件夹下的lib里的 D:\apache-tomcat-5.5.26\common\lib\servlet-api.jar写到环境变量下的CLASSPATH当中。之后重新编译,仍然找不到ServletException和IOException,怎么办?添加引用哦~
import javax.servlet.*;
import java.io.*;
之后,编译成功。在工作空间里生成了LoginServlet.class文件。
(3) 配置运行空间
在tomcat的webapps文件夹下新建“test_servlet”文件夹,之后新建WEB-INF及其子文件夹。将login.html复制到test_servlet下。将编译生成的LoginServlet.class文件放到classes文件夹下。编写web.xml文件:
<?xml version="1.0" encoding="UTF-8"?>
<web-app version="2.5"
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">
<servlet>
<servlet-name>MyServlet</servlet-name>
<servlet-class>LoginServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>MyServlet</servlet-name>
<url-pattern>/loginServlet</url-pattern>
</servlet-mapping>
</web-app>
其中,<servlet>和<servlet-mapping>中都有servlet-name,二者保持一样,名字自己起,<servlet-class>就是编译后的类名。<url-pattern>则为html访问时候的url地址。就像在html文件中form表单里所写的action=” loginServlet”一样。
(5)启动Tomcat
在tomcat下的bin文件夹中,双击startup.bat文件用来手动启动tomcat服务器,dos窗口显示“setup successful!”之后即可。
(6)浏览器访问
在地址栏中输入:http://localhost:8080/ test_servlet/loginServlet.html即可访问到不通过IDE部署在tomcat上的servlet程序。
这样了解了tomcat的文件路径及作用,并手动启动tomcat服务之后,对于web服务器的大概操作流程就明白了,如果需要访问数据库,再在lib文件夹下引入jdbc的jar包和manager业务逻辑的jar包即可。
下一篇博客,详细分析这个过程的调用流程。
【基本概念】
1、工作空间
这是代码保存的位置,仅仅是在打开IDE的时候,代码从这里的文件中调用而已。比如,在我的电脑中将我的小例子放到”D:\drptest”目录下,这就是工作空间。
2、运行空间
这是指java程序借助于web服务器运行的时候代码存放的地址,常用的web服务器有jboss,tomcat,以tomcat为例,将工作空间中的.java文件编译成.class之后,放到tomcat下,程序运行时,就会实例化这里的.class文件。
3、 Tomcat目录
在tomcat文件夹下先介绍3个文件夹:
(1)bin:这里存放了很多tomcat封装的批处理文件,例如启动tomcat服务的startup.bat,关闭tomcat服务shutdown.bat,查询jdk版本的version.bak等。
(2)common:该文件夹下的lib目录中,有一些项目必备的jar包,就像Servlet-api.jar,我们写servlet类的时候,类似” importjavax.servlet.http.*;”就是指向这里。
(3)webapps:这里是真正的运行空间,webapps下是具体的项目文件夹,这里以”test-servlet”为例,test-servlet下有html页面,以及WEB-INF文件,WEB-INF目录结构如下:
1.Lib文件夹用于存放引用的第三方jar包,类似于jdbc.jar以及后面的Manager逻辑类的jar文件。
2.classes文件夹用于存放编译之后的.class文件。
3.web.xml是用来配置如何访问.class文件,从而通过html访问到该类。
So,如果不使用ide环境,这些个文件夹的配置,就得自己来操作,很有意思,接着来。
【创建过程】
(1)新建html和java文件
在工作空间“D:\drptest”中新建一个login.html文件和一个LoginServlet.java文件,以“登录”为例:
Html代码如下:
<html>
<head>
<title>登录</title>
</head>
<body>
<form action="loginServlet">
用户:<input type="text" name="username"><br>
密码:<input type="password" name="password"><br>
<input type="submit" value="登录">
</form>
<body>
</html>
对于form表单,默认以get形式发送请求,若以post形式发送请求,加入<method=”post”>即可。
LoginServlet.java代码如下:
import javax.servlet.http.*;
public class LoginServlet extends HttpServlet {
public void doGet(HttpServletRequest request,
HttpServletResponse response) throws ServletException, java.io.IOException{
//返回值为字符串,参数类型也为字符串
String username = request.getParameter("username");
String password = request.getParameter("password");
//将用户名和密码打印出来
System.out.println("username=" + username);
System.out.println("password=" + password);
//将信息返回到html页面当中,"text/html"是返回的格式,加入charset则是返回的编码方式
response.setContentType("text/html");
response.getWriter().println("Login Success!!!");
}
}
该类中有两个必备的方法:doGet以及doPost,二者与html页面发送的get请求和post请求相对应。这里以doGet为例,登录成功返回”LoginSuccess!!!”内容。
(2)编译.java程序
打开dos窗口并进入drptest目录,输入”javac LoginServlet.java”:
如图,报错了,找不到HttpServlet,怎么回事?明明是在代码中import了这个类啊,原因在于没有将common文件夹下的lib里的 D:\apache-tomcat-5.5.26\common\lib\servlet-api.jar写到环境变量下的CLASSPATH当中。之后重新编译,仍然找不到ServletException和IOException,怎么办?添加引用哦~
import javax.servlet.*;
import java.io.*;
之后,编译成功。在工作空间里生成了LoginServlet.class文件。
(3) 配置运行空间
在tomcat的webapps文件夹下新建“test_servlet”文件夹,之后新建WEB-INF及其子文件夹。将login.html复制到test_servlet下。将编译生成的LoginServlet.class文件放到classes文件夹下。编写web.xml文件:
<?xml version="1.0" encoding="UTF-8"?>
<web-app version="2.5"
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">
<servlet>
<servlet-name>MyServlet</servlet-name>
<servlet-class>LoginServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>MyServlet</servlet-name>
<url-pattern>/loginServlet</url-pattern>
</servlet-mapping>
</web-app>
其中,<servlet>和<servlet-mapping>中都有servlet-name,二者保持一样,名字自己起,<servlet-class>就是编译后的类名。<url-pattern>则为html访问时候的url地址。就像在html文件中form表单里所写的action=” loginServlet”一样。
(5)启动Tomcat
在tomcat下的bin文件夹中,双击startup.bat文件用来手动启动tomcat服务器,dos窗口显示“setup successful!”之后即可。
(6)浏览器访问
在地址栏中输入:http://localhost:8080/ test_servlet/loginServlet.html即可访问到不通过IDE部署在tomcat上的servlet程序。
这样了解了tomcat的文件路径及作用,并手动启动tomcat服务之后,对于web服务器的大概操作流程就明白了,如果需要访问数据库,再在lib文件夹下引入jdbc的jar包和manager业务逻辑的jar包即可。
下一篇博客,详细分析这个过程的调用流程。
相关文章推荐
- mysql之视图
- 无锁化编程有哪些常见方法?----阿里巴巴2015实习生笔试题
- 零起点学 C++ 第二章
- Angular-Ui-Router+ocLazyLoad动态加载脚本
- poj2823 Sliding Window
- Hive常用的SQL命令操作
- 时间空间
- 手势的3个混淆属性
- 横竖屏切换
- python 文件下载 方法
- Android使用Fragment来实现ViewPager的功能(解决切换Fragment状态不保存)以及各个Fragment之间的通信
- 鲲*棠
- easyui--datetimebox插件,下拉框的日期不能全部显示,即一个月份中的天数未全部显示
- AJAX教程系列二:open方法与数据获取与处理
- CodeIgniter 数据库连接查询
- android资源文件(assets and raw) 的读写
- iOS开发 - MD5加密
- CSS Secret——Transitions & Animations
- 在CSS中,html中的标签元素三种不同的类型
- 蓝牙学习之旅——低功耗蓝牙之物理层Physical Layer