服务器就是一台高性能的电脑
Servlet是用于扩展web服务软件业务功能得组件,每一种业务请求都需要对应一个单独的Servlet
public class HelloServlet extends HttpServlet {
@Override
protected void service(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
System.out.println("恭喜你,接收到请求了!");
}
}
请求由浏览器发出到web服务器,由web服务器的web服务软件(Tomcat)拦截,Tomcat拦截到请求后,获取出请求的字地址(/HelloServlet),通过该字地址去web.xml找到处理该请求的Servlet的完整类名,得到完整类名后Tomcat通过反射技术将该对象实例化,然后调用对象的service方法,从而导致程序员写在Servlet里面的代码执行
sayhello.html
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
<form action="SayHelloServlet">
<input type="text" name="info">
<input type="submit">
</form>
</body>
</html>
SayHelloServlet.java
import java.io.IOException;
import java.io.PrintWriter;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
public class SayHelloServlet extends HttpServlet {
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
//获取参数
String info = request.getParameter("info");
//设置响应类型
response.setContentType("text/html;charset=utf-8");
//获取输出对象
PrintWriter pw=response.getWriter();
//输出数据
pw.print(info+"你好!");
//关闭资源
pw.close();
}
}
端口号被占用错误 关键字8005,8080,8009
解决:找到Tomcat安装包的位置 D:\java\apache-tomcat-7.0.96\bin 里面的shutdown.bat 双击运行 重复启动Tomcat即可.
如果运行工程访问指定路径时控制台提示ClassNotFoundException这样的错误,Clean一下工程,作用是让工程把编译好的内容删掉重新编译即可解决.
如何clean:在eclipse菜单栏中Project->clean
404状态码,代表找不到资源(资源代表文件资源或Servlet),检查路径是否书写正确,检查资源文件位置是否正确
如果运行工程直接报错,并且是以弹窗形式报错,里面全是英文,并且没有端口信息
clean工程:
(1). 在eclipse菜单栏中Project->clean
(2). 在servers面板中的Tomcat上面右键Clean
如果上面没有解决继续往下:
把servers面板中的Tomcat删除(Tomcat上面右键Delete)重新添加(点击servers面板中出现的超链接 选择对应的版本添加,添加之后双击Tomcat 把单选改成中间的保存),重新添加完Tomcat服务器后将工程重新运行.
如果上面没有解决继续往下:
把eclipse关联的Tomcat删除重新添加
如何删除:window->Preferences->Server->RunTime->找到里面已经存在的Tomcat从右侧Remove,把之前解压的Tomcat安装包文件夹删除重新解压一份.
如何添加:参考前面 如何在eclipse中关联Tomcat
联系客服