您的位置:首页 > 编程语言 > Java开发

初学java web的建议

2014-01-02 10:27 169 查看
不要过早接触框架,框架无非就是servlet和filter的产物(我的理解)

那就先从servlet和filter做起吧

servlet在前几篇我已经提过了

这里就大概提一下filter等其他的

定义filter类

内容如下

package demo;

import java.io.IOException;

import javax.servlet.Filter;
import javax.servlet.FilterChain;
import javax.servlet.FilterConfig;
import javax.servlet.ServletException;
import javax.servlet.ServletRequest;
import javax.servlet.ServletResponse;
import javax.servlet.http.HttpServletRequest;

public class HelloFilter implements Filter {

@Override
public void init(FilterConfig arg0) throws ServletException {
System.out.println("Filter 初始化");
}

@Override
public void doFilter(ServletRequest req, ServletResponse res,
FilterChain chain) throws IOException, ServletException {
HttpServletRequest request = (HttpServletRequest)req;
System.out.println("拦截 URI="+request.getRequestURI());
chain.doFilter(req, res);
}

@Override
public void destroy() {
System.out.println("Filter 结束");
}
}


在web.xml中配置,这里要放在servlet配置前边

<filter>
<filter-name>helloFilter</filter-name>
<filter-class>demo.HelloFilter</filter-class>
</filter>

<filter-mapping>
<filter-name>helloFilter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>


和servlet太类似了是不是(不过servlet继承,filter实现接口)

先filter在servlet

HttpServletRequest和HttpServletResponse两个接口最重要

请求 响应

Session

HTTP协议里没有关于Session回话的定义,Session是各种编程语言根据HTTP协议的无状态这种特点而产生的。其实无非就是服务器的一个哈希表,

哈希表的key就是传递给浏览器的名为jsessionid的cookie值

当需要将某个值保存到session中,容器会执行如下几步

1.获取jsessionid值,没有的话就生成一个,也就是request.getSession()这个方法

2.拿到HttpSession对象实例就相当于一个哈希表,你可以王哈希表里存放数据(setAttribute)

3.你也可以通过getAttribute来获取某个值

jsessionid的cookie在浏览器关闭时会自动删除。Cookie的MaxAge设置为-1就能达到效果。

这里很重要,某些面试就喜欢问(买了个表,这有什么好问的)(这也说明了session只存在与服务器端,cookie存在客户端)

关于jsp

jsp页面执行时都会编译一个servlet类文件,你可以看看(/work)会自动生成一个.java文件和一个编译后的.class文件

jsp适合做视图

servlet适合做控制层

具体代码我会打包发上去有需要下载

云盘代码包
http://pan.baidu.com/s/1o6JLY46
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: