Jsp基础知识总结

阅读更多
首先来说一下我们jsp的课程:第一部分为Servlet技术,包括Servelt入门,会话跟踪,JavaMal和Servlet.第二部分就是Jsp 技术,包括:jsp简介,jsp脚本和指令的使用,jsp隐式对象,JavaBean与jsp中的标准动作,jsp表达式语言,自定义标签,jsp自定义表签库.第三部分就是过滤器的设计模式,包括过滤器和MVC设计模式. 
 
    一.Servlet知识及常见错误和规律. 
 
1.桌面运行程序与WEB应用程序在过程实质是一样的---基于请求与响应的过程. 
2.http协议(超文本传输协议) 
  1).无状态:多次请求信息之间无联系. 
  2).用于internet发送请求和响应消息 
  3).使用端口接收和发送消息,默认为80端口. 
端口:为内存缓冲区(多线程接收数据) 
windows: 0---65535端口 
  0---4096为系统端口 
3.什么是Servlet? 
  Server let服务器端小程序. 
  用来处理客户端发送的请求,并由服务器响应给客户端的java编写的程序. 
  Servlet只在服务器运行 
 
4.Servlet详解: 
import java.io.*; 
import javax.servlet.*; 
import javax.servlet.http.*; 
import java.util.*; 
public class MyServlet extends HttpServlet 

          public void doGet(HttpServletRequest request,HttpServletResponse response) 
                        throws ServletException,IOException 
          { 
                       response.setContentType("text/html;charset=gb2312"); 
                       request.setCharacterEncoding("gb2312"); 
  
                        response.sendRedirect("Login.jsp"); //重定向方法 
                        request.getParameter("");  //读取客户端数据 
 
                       / /以下方法为转发,不同于重定向的是:转发时数据不丢失. 
                      ServletContext context=this.getServletContext(); 
                      RequestDispatcher dispatcher=context.getRequestDispatcher("/welcome.jsp"); 
                      dispatcher.forward(request,response); 
  
                      ...//以下方法为包含(用得相对较少) 
                     dispatcher.include(request,response); 
 
          } 
         public void doPost(HttpServletRequest request,HttpServletResponse response) 
                        throws ServletException,IOException 
         { 
                     doGet(request,response); 
         } 

 
(2).当需要向Servlet传递参数的时候,Src="Servlet?name=' '  "; 
 
5.执行servlet时,发生下载提示: 
 
(1).可能性一:text/html;charset=GBK中间分号写成逗号. 
(2).可能性二:XML中配置信息出错. 
(3).可能性三:如定义全局变量时,例:CONTENT_TYPED在以后所用中放在双引号之中. 
(4).可能性四:当上面的text/html,charset中写错字符的时候,也会提示下载. 
 
6执行servlet时,发生404错误: 
 
(1).多为xml中配置出错. 
(2).可能在servlet通信方法中url出错. 
(3).表单提交时:action路径. 
(4).比较弱智的错误就是标记写错,请仔细检查. 
 
7.执行servlet时,发生403错误: 
 
(1).tomcat下站点里发生错误. 
 
8.执行servlet时,发生405错误: 
 
(1).servlet中没有post提交方法时. 
 
95.执行servlet时,发生500错误: 
 
(1).多数为servlet程序代码中发生异常错误. 
 
10.执行时,取出的数据为null.就要根据实际情况对应错误提示去找. 
 
11.执行jsp页时,发生500错误提示.... 
   
        多数为jsp页面在转译过程中发生编译错误! 甚是严重错误,可以按提示回头去找... 
 
 
二.XML配置 
 
 
 
 
  sess 
  com.serv 
 
    Myservlet 
    com.Myservetl 
 
 
 
 
Myservlet 
/url 
 
 
 
 
ses 
com.ser 
 
 
 
注意:配置信息只能读取,并且config是在单个Servlet中能访问,context是全局访问 
 
三. 
========================会话跟踪技术总结======================== 
 
用户授权. 
隐藏表单域 
URL重写 
Cookie使用 
-------------------------------------------------------------------------------------------- 
1.会话:是同一客户端和服务器之间在同一段时间的多次请求和响应. 
 
2.Session使用(重点) 
 
  HttpSession session=request.getSession(); 
  session.setAttribute("name",Object); //附值 
  session.getAttribute(); //取值 
  session.removeAttributer(); 
 
3.Cookie(类) 
1).Cookie是什么? 
      cookie是一段字符串,由HTTP支持,在客户端可以永久保存.写入(硬盘). 
      每次请求,响应中都会为cookie留有空间. 
2).用法: 
        Cookie cookie=new Cookie("name",cookie); //必须指定cookie的键与值,且必须为字符串. 
        response.addcookie(cookie); 
        cookie.setMaxAge(3600);  //以秒为单位. 
  
//读取客户端发送过来的cookie,返回值类型为: cookie数组 
request.getCookies(); 
//循环读取键与值. 
 
   使用过程:(1).生成cookie, new cookie("","") 
   (2).设置生存周期 >0,SetMaxAge(秒). 
   (3).发送到客户端:response.addCookie(cookie); 
 
小常识:(1).一个网站最多向一个客户端写20个cookie. 
             (2).一个客户端最多接收300个cookie. 
 
4.Session与Cookie这间的关系: 
session的ID作为Cookie的值在客户端与服务器之间进行传递. 
-------------------------------------------------------------------------------------------- 
 
四.构建实体Bean的原则: 
 
/*
*  1.bean类为公有
*  2.类成员为私有
*  3.必有一个无参构造
*  4.有set()和get()方法
*  5.方法命名为setXxx()或getXxx()方法
*/ 
 
 
五.MVC实现数据封装 
 
此数据封装标准按MVC总结. 
 
所需内容: 1.Servlet 2.JavaBean 3.OperBean(DBconnection) 4.Jsp 
 
  由Servlet提取前台数据,然后将数据封装于JavaBean中,再实例化OperBean,调用OperBean中方法, 
将JavaBean对象以参数的形式传过去,并进行一系列的操作后,返回数据存入ArrayList中或者其它集合内,并将集合对象封装Session对象中,便于在前台取值. 
 
Servlet控制: 
 
  ........ 
Arraylist lis=new ArrayList(); 
 
String name=request.getParameter("username"); 
  
JavaBean bean=new JavaBean(); 
bean.setName(name); 
  
OperBean oper=new OperBean(); 
lis=oper.operMethod(bean); 
 
HttpSession session=request.getSession(); 
session.setAttribute("list",lis); 
 
OperBean逻辑: 
... 
public ArrayList OperMethod(JavaBean bean) 

  ArrayList lis=new ArrayList(); 
  String usr=bean.getName("name"); 
  
  String sql="select * from student where name='"+usr+"'"; 
  
  DBconnection db=new DBconnection(); 
  ...//操作数据业务 
  
  return lis; 

 
前台业务: 
... 
ArrayList list=(ArrayList)session.getAttribute("lis"); 
Iterator ite=list.iterator(); 
while(ite.harNext())  //遍历输出 

  JavaBean bean=(JavaBean)ite.next(); 
  . 
  //取bean中值 

 

你可能感兴趣的:(JSP,Servlet,Bean,MVC,应用服务器)