ServletContext的使用需要多个对象,任何一个对象传输数据后,其余的对象都可以取用改数据
HelloServlet传输一个名字
package com.su.servlet;
import javax.servlet.ServletContext;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.io.PrintWriter;
import java.nio.charset.StandardCharsets;
public class HelloServlet extends HttpServlet {
//由于get和post知识请求实现的不同方式,谁调用谁都一样
@Override
protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
// this.getServletConfig(); servlet配置
// this.getInitParameter(); 初始化参数
// this.getServletContext(); servlet上下文
resp.setContentType("text/html");
resp.setCharacterEncoding("utf-8");
ServletContext servletContext = this.getServletContext();
String name="苏";
servletContext.setAttribute("username",name);
//将一个数据保存在ServletContext中,名字为ServletContext,名字为username,值rname
PrintWriter writer = resp.getWriter();
writer.print("名字是"+name);
}
@Override
protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
doPost(req, resp);
}
}
GetName用来获取别的ServletContext对象传输的数据
package com.su.servlet;
import javax.servlet.*;
import javax.servlet.http.*;
import javax.servlet.annotation.*;
import java.io.IOException;
@WebServlet(name = "Servlet", value = "/Servlet")
public class GetName extends HttpServlet {
@Override
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
//解决中文乱码设置格式
response.setContentType("text/html");
response.setCharacterEncoding("utf-8");
ServletContext context = this.getServletContext();
String n = (String) context.getAttribute("username");
response.getWriter().print("名字是"+n);
}
@Override
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
}
}
配置两个Servlet的web.xml文件:
hello
com.su.servlet.HelloServlet
hello
/hello
get
com.su.servlet.GetName
get
/get
运行结果如下:
使用HelloServlet存入数据
使用GetName取出数据
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)