servlet入门
现学现卖,大概说的就是我吧。。。
-----------------------------------------------
Mac在终端启动Tomcatcd /bin路径
cd /Library/apache-tomcat-8.5.45/bin sudo sh startup.sh
Mac在终端关闭Tomcat
cd /Library/apache-tomcat-8.5.45/bin
sudo sh shupdown.sh
可能在终端启动了Tomcat,还是没能打开http://localhost:8080/
可能的问题:
端口占用
可能的解决方案:
1.强制退出所有程序
1.Mac强制退出程序:按住快捷键 Command+Option+Shift+Esc
2.活动监视器中删除进程
3.命令行
2.修改端口
Tomcat部署项目的方式:
1.直接将项目放到webapps目录下
通过访问losalhost:8080/hello/123.html访问123.html
/hello是虚拟路径 /123.html是资源名称
简化部署:将项目打成war包,再将war包放置到webapps目录下,war包会自动解压缩
2.通过配置conf目录下的server.xml
docBase后面写的是项目的路径
path是虚拟路径
在server.xml中增加
<!-- 部署项目 --> <Context docBase="/Users/mac/Desktop/123" path="w"/>
(修改后重启服务器)
访问http://localhost:8080/w/123.html成功得到页面
3.在/Library/apache-tomcat-8.5.45/conf/Catalina/localhost下创建任意名称的XML文件
在文件中编写
<Context docBase="/Users/mac/Desktop/123">
现在的虚拟路径就是刚创建XML文件的名称
(修改后重启服务器)
访问http://localhost:8080/1/123.html成功得到页面
动态项目:
目录结构
Java动态项目的目录结构:
项目的根目录
web.xml:web项目的核心配置文件
classes目录:放置字节码文件的目录
lib目录:放置依赖的jar包
Tomcat与IDEA集成创建web项目(IDEA)
run->edit configurations
左侧Tomcat Server->local
将项目部署到Tomcat里
在index.jsp中写
<%@ page contentType="text/html;charset=UTF-8" language="java" %> <html> <head> <title>小窗口</title> </head> <body> hello </body> </html>
启动服务器
web项目的部署成功了。
接下来,我们进入正题(严肃脸)-----servlet
servlet
server applet 运行在服务器端的小程序
servlet是一个接口,定义了Java类被浏览器访问到(Tomcat识别)的规则
我们通过自定义一个类,实现servlet接口,覆写方法
1.创建Javaweb/JavaEE项目
2.定义一个类,实现servlet接口
3.实现接口中的方法
4.在webRoot下的web-inf文件夹下的web.xml文件中配置servlet
配置web.xml
<servlet-name>stu</servlet-name>中间可以起任意名字,但是要保证上面和下面<servlet-name>stu</servlet-name>中的名字一直,为保证上下的映射关系。
<servlet-class>com.wxy.student</servlet-class>中间是stu对应的类的全限定类名
<url-pattern>/stu</url-pattern>中间是资源名称
<?xml version="1.0" encoding="UTF-8"?> <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"> <servlet> <servlet-name>stu</servlet-name> <servlet-class>com.wxy.student</servlet-class> </servlet> <servlet-mapping> <servlet-name>stu</servlet-name> <url-pattern>/stu</url-pattern> </servlet-mapping> </web-app>
在Application context中可以改虚拟路径
student.java
package com.wxy; import javax.servlet.ServletException; import javax.servlet.ServletResponseWrapper; import java.io.IOException; import java.io.PrintWriter; public class student extends javax.servlet.http.HttpServlet { private String message; protected void doPost(javax.servlet.http.HttpServletRequest request, javax.servlet.http.HttpServletResponse response) throws javax.servlet.ServletException, IOException { } public void init() throws ServletException { message = "perfect"; } protected void doGet(javax.servlet.http.HttpServletRequest request, javax.servlet.http.HttpServletResponse response) throws javax.servlet.ServletException, IOException { ServletResponseWrapper resp; response.setContentType("text/html"); PrintWriter out = response.getWriter(); out.write("<h1>" + message + "</h1>"); } }
就这样,就做完了第一个servlet入门小项目,是不是很简单呢!!(*^▽^*)