我们在做一个Javaweb项目时,是需要达到“高内聚,低耦合”的效果的,也就是前端的事情前端干,后端的坑后端填。那么,想要实现这一目标,我们就需要了解怎样将两者区分开。
先来了解一下:
servlet:
Servlet 是一个 Java程序,是在服务器上运行以处理客户端请求并做出响应的程序
Servlet包:
Servlet这个类可以使用javax.servlet和javax.servlet.http包创建。。。。。
实现它:
servlet生命周期:servlet生命周期可被定义为从创建直到被毁灭的整个过程,其过程是:servlet调用init()进行初始化-->调用servlet()方法来处理客户端请求-->调用destroy()方法终止-->被JVM垃圾回收器回收。
或者是继承它:
package com.zking.servlet;
import java.io.IOException;
import java.io.PrintWriter;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
@WebServlet("/two.do") //注解式配置
public class LoginTwoServlet extends HttpServlet{
//提供方法给别个访问才可以
//servlet可以支持多重访问方式
//提供get访问
protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
doPost(req, resp);
}
//提供post访问
protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
//拿数据
String username = req.getParameter("username");
//alt+1
String userpwd = req.getParameter("userpwd");
//获取输出对象
resp.setCharacterEncoding("gbk");
PrintWriter out = resp.getWriter();
//逻辑判断
if("root".equals(username)&&"root123".equals(userpwd)) {
//显示在页面中 [登录成功]
out.print("登录成功");
// resp.sendRedirect("");
// req.getRequestDispatcher("").forward(req, resp);
}else {
//显示在页面中 [登录失败]
out.print("登录失败");
}
//session
req.getSession();
//application
req.getServletContext();
//Context 上下文【容器】
}
}
相对而言,继承servlet更为自由。。。。。。
GenericServlet抽象类与httpServlet中的方法:
GenericServlet抽象类方法:
方法名称 | 功能描述 |
String getInitParameter(String name) | 返回服务器上与指定URL相对应的ServletContext对象,实际上是调用ServletConfig接口的同名方法 |
ServletContext getServletContext() | 返回Servlet的上下文对象引用,实际上是调用ServletConfig接口的同名方法 |
void init() | 初始化Servlet |
HttpServlet的方法
void doGet(HttpServletRequest request,HttpServletRresponse response) | 以Get请求服务时调用 | |
void doPost(HttpServletRequest request,HttpServletRresponse response) | 以Post请求服务时调用 |
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)