servlet其实就是一个java类,简单地说:servlet就是能够使用print语句产生动态html内容的java类
它是在服务器上的可以通过“请求-响应”模式来访问的应用程序。
servlet的主要功能包括以下几点:
a.读取客户端发送到服务器端的显示数据(表单数据),
b.读取客户端发送到服务器端的隐式数据(请求报头),
c.服务器端发送显示的数据到客户端(html)
d.服务器端发送隐式的数据到客户端(状态代码和响应报头)
总的来说就是客户端与服务器端的显示、隐式数据交换
读取客户端html表单的数据、读取cookie session数据
我个人认为servlet最卓越的功能是他的过滤器作用——典型的应用是进行身份验证
比如访问一个网站的时候,登录后就拥有一些特殊的权限(发表留言、评论、转载灯功能),而作为匿名游客则只可以访问 浏览允许的页面。
一个简单的代码例子
userFilter.java
import java.io.IOException;
import java.io.PrintWriter;
import javax.servlet.*;
import javax.servlet.http.*;
public class UserFilter extends HttpServlet implements Filter {
private FilterConfig filterConfig;
@Override
public void doFilter(ServletRequest request, ServletResponse response,
FilterChain filter) throws IOException, ServletException {
HttpSession session=((HttpServletRequest)request).getSession();
response.setCharacterEncoding("utf-8");
if(session.getAttribute("name") != null)
{
filter.doFilter(request, response);
}
else
{
PrintWriter out=response.getWriter();
out.println("<script language='javascript'>alert('you don not have the power,please login!');" +
"window.location.href='index.jsp'</script>");
}
}
@Override
public void init(FilterConfig filterConfig) throws ServletException {
this.filterConfig=filterConfig;
}
}
web.xml配置
<filter>
<filter-name>UserFilter</filter-name>
<filter-class>com.util.UserFilter</filter-class>
</filter>
<filter-mapping>
<filter-mapping>
<filter-name>UserFilter</filter-name>
<url-pattern>/sendArticle.jsp</url-pattern>阻止匿名游客进入的页面
<url-pattern>/update.jsp</url-pattern>
<url-pattern>/delete.jsp</url-pattern>
</filter-mapping> |