Servlet
* 继承HttpServlet后要重写doGet()、doPost()方法
String userName = req.getParameter("userName");
String password = req.getParameter("password");
PrintWriter pw = resp.getWriter();
if("admin".equals(userName)&&"123456".equals(password)){
//req.getRequestDispatcher("success.html").forward(req, resp);
resp.sendRedirect("success.html");
}else{
//req.getRequestDispatcher("fail.html").forward(req, resp);
resp.sendRedirect("fail.html");
}
* web服务器
* 1:tomcat.是开源的并且是用java语言来编写。它是免费的。用于中小型的项目。
* 2:weblogic,webSphere,用于中大型,它是收费的。
* tomcat服务器的目录
1. bin;放一些可执行程序。startup.bat 启动web服务器。
2. conf:配置文件。server.xml:可以设置端口。web.xml配置文件。
3. lib;第三方jar包。
4. logs:日志文件。
5. temp:临时文件。
6. webapps:外界可以访问的目录。web工程就放在这个目录。
7. work:缓存的。
* 启动web服务器。
* servlet:接收客户端的数据,并进行处理,再将响应的数据发送给客户端。它是用java程序,只是运行在服务器端。
* 写一个Servlet的步骤
1. 创建一个类,继承HttpServlet类。如果没有找到HttpServlet类,可以去tomcat的lib目录下复制servlet-api.jar包。复制到webcontent 目录下的lib目录下,再选中servlet-api.jar包,右击build-path,再选择add to build-path
2. 重写一些方法。
1:构造方法。第一次请求的时候服务器会创建一个对象,只创建一次。
2:init方法。做一些初始化工作。只执行一次。
3:doGet方法:处理get请求,每请求一次,调用一次。
4:doPost方法:处理post请求,每请求一次,调用一次。
5:destroy方法:销毁Servlet.比如当web服务器停止的时候,会执行。
3. 找到Webcontent目录的,WEB-INF目录的web.xml文件。在web-app标记里。添加以下内容
<servlet>
<servlet-name>Myservlet(可以随便取)</servlet-name>
<servlet-class>MyServlet(必须为包名.类名)</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>Myservlet(跟servlet的servlet-name名一致)</servlet-name>
<url-pattern>/myservlet(可以随便取,这个决定了地址的写法)</url-pattern>【这个要和html界面的action相同】
</servlet-mapping>
4. 给服务器端发送请求。在浏览器地址栏上:http://ip地址:端口号/web工程名/myservlet(web.xml中的url-pattern怎么写的 就输入什么)
* <form action="login" name="form1" method="get">
* servlet和servlet-mapping可以一对多,为了让url调用servlet里面的多个方法
* 转发req.getRequestDispatcher("success.html").forward(req, resp);
* 重定向resp.sendRedirect("success.html");
*get和post请求
1. 作用上。get主要是从服务器端取数据,如果客户端需要向服务器端发送数据,那么就用post 请求。
2. 地址栏。get请求会将表单的数据追加在地址栏后面。post方式不会将表单数据追加在地址栏。
3. 安全性。get请求会不安全的
4. 传输的数据。get传输的数据比较小。post相对来说比get传输的数据要大一些。
* 转发与重定向的区别
1. 转发地址栏没有变化。重定地址栏上有变化。
2. 转发是服务器内部的变化,跟客户端是没有关系,重定向相当于2次请求。
3. 转发可以让数据在页面之间进行共享。但是重定向不行。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· AI与.NET技术实操系列:基于图像分类模型对图像进行分类
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· 25岁的心里话
· ollama系列01:轻松3步本地部署deepseek,普通电脑可用
· 按钮权限的设计及实现