JSP入门需要知道的五个方面

开发 后端
本文是一个JSP入门的简单的总结性文章,从Servlet知识及常见错误和规律、XML配置方面、会话跟踪技术方面、构建实体Bean的原则方面、MVC实现数据封装方面等介绍了JSP入门的知识。

对于JSP入门的人来说,点点滴滴的基础知识是很重要的,从最简单的工具Jcreater4.0开始入手,到拥有Ecliplse之后的快速开发,对于一个初学者都是一个成长的过程。

那么现在开始我们的话题,JSP入门,包括Servlet技术(Servelt入门,会话跟踪,JavaMal和Servlet.)、JSP技术(JSP简介,JSP脚本和指令的使用,JSP隐式对象,JavaBean与JSP中的标准动作,JSP表达式语言,自定义标签,JSP自定义表签库)、过滤器的设计模式(过滤器和MVC设计模式.)

一.JSP入门之Servlet知识及常见错误和规律.

1.桌面运行程序与WEB应用程序在过程实质是一样的---基于请求与响应的过程.

2.http协议(超文本传输协议)

◆无状态:多次请求信息之间无联系.

◆用于internet发送请求和响应消息

◆使用端口接收和发送消息,默认为80端口.

端口:为内存缓冲区(多线程接收数据)

3.什么是Servlet?

Server let服务器端小程序.

用来处理客户端发送的请求,并由服务器响应给客户端的java编写的程序.

Servlet只在服务器运行

4.Servlet详解:

◆源码演示:

  1. import java.io.*;  
  2. import javax.servlet.*;  
  3. import javax.servlet.http.*;  
  4. import java.util.*;  
  5. public class MyServlet extends HttpServlet  
  6. {  
  7.           public void doGet(HttpServletRequest request,HttpServletResponse response)  
  8.                         throws ServletException,IOException  
  9.           {  
  10.                        response.setContentType("text/html;charset=gb2312");  
  11.                        request.setCharacterEncoding("gb2312");  
  12.     
  13.                         response.sendRedirect("Login.jsp"); //重定向方法  
  14.                         request.getParameter("");  //读取客户端数据  
  15.  
  16.                        / /以下方法为转发,不同于重定向的是:转发时数据不丢失.  
  17.                       ServletContext context=this.getServletContext();  
  18.                       RequestDispatcher dispatcher=context.getRequestDispatcher("/welcome.jsp");  
  19.                       dispatcher.forward(request,response);   
  20.     
  21.                       ...//以下方法为包含(用得相对较少)  
  22.                      dispatcher.include(request,response);  
  23.  
  24.           }  
  25.          public void doPost(HttpServletRequest request,HttpServletResponse response)  
  26.                         throws ServletException,IOException  
  27.          {  
  28.                      doGet(request,response);  
  29.          }  
  30. }  
  31.  

◆当需要向Servlet传递参数的时候,Src="Servlet?name=' '  ";

5.执行servlet时,发生下载提示:

◆可能性一:text/html;charset=GBK中间分号写成逗号.

◆可能性二:XML中配置信息出错.

◆可能性三:如定义全局变量时,例:CONTENT_TYPED在以后所用中放在双引号之中.

◆可能性四:当上面的text/html,charset中写错字符的时候,也会提示下载.

6.执行servlet时,发生404错误:

◆多为xml中配置出错.

◆可能在servlet通信方法中url出错.

◆表单提交时:action路径.

◆比较弱智的错误就是标记写错,请仔细检查.

7.执行servlet时,发生403错误:

◆tomcat下站点里发生错误.

8.执行servlet时,发生405错误:

◆servlet中没有post提交方法时.

9.执行servlet时,发生500错误:

◆多数为servlet程序代码中发生异常错误.

10.执行时,取出的数据为null.就要根据实际情况对应错误提示去找.

11.执行jsp页时,发生500错误提示....
  
◆多数为jsp页面在转译过程中发生编译错误! 甚是严重错误,可以按提示回头去找...

二.JSP入门之XML配置方面

◆源码演示

  1. ﹤!--config中的配置信息,当中配置需要在servlet中的xml中--﹥  
  2. ﹤servlet﹥  
  3.  ﹤init-param﹥  
  4.   ﹤param-name﹥sess﹤/param-name﹥  
  5.   ﹤param-class﹥com.serv﹤param-class﹥  
  6.  ﹤/init-param﹥  
  7.     ﹤servlet-name﹥Myservlet﹤/servlet-name﹥  
  8.     ﹤servlet-class﹥com.Myservetl﹤/servlet-class﹥  
  9. ﹤/servlet﹥  
  10.  
  11. ﹤!--此为对Myservlet进行映射--﹥  
  12. ﹤servlet-mapping﹥  
  13.  ﹤servlet-name﹥Myservlet﹤/servlet-name﹥  
  14.  ﹤servlet-class﹥/url﹤/servlet-class﹥  
  15. ﹤servlet-mapping﹥  
  16.  
  17. ﹤!--context中配置信息--﹥  
  18. ﹤context-param﹥  
  19.  ﹤param-name﹥ses﹤/param-name﹥  
  20.  ﹤param-class﹥com.ser﹤/param-class﹥  
  21. ﹤/context-param﹥  
  22.  

 

◆配置信息只能读取,并且config是在单个Servlet中能访问,context是全局访问

三.JSP入门之会话跟踪技术方面

◆用户授权

◆隐藏表单域

◆URL重写

◆Cookie使用

1.会话:是同一客户端和服务器之间在同一段时间的多次请求和响应.

2.Session使用(重点)

  1. HttpSession session=request.getSession();  
  2. session.setAttribute("name",Object); //附值  
  3. session.getAttribute(); //取值  
  4. session.removeAttributer(); 

3.Cookie(类)

1).Cookie是什么?

cookie是一段字符串,由HTTP支持,在客户端可以永久保存.写入(硬盘).

每次请求,响应中都会为cookie留有空间.

2).用法:

  1. Cookie cookie=new Cookie("name",cookie); //必须指定cookie的键与值,且必须为字符串.  
  2. response.addcookie(cookie);  
  3. cookie.setMaxAge(3600);  //以秒为单位.  
  4.     
  5. //读取客户端发送过来的cookie,返回值类型为: cookie数组  
  6. request.getCookies();  
  7. //循环读取键与值. 

使用过程:

(1).生成cookie, new cookie("","")

(2).设置生存周期 ﹥0,SetMaxAge(秒).

(3).发送到客户端:response.addCookie(cookie);

小常识:

(1).一个网站最多向一个客户端写20个cookie.

(2).一个客户端最多接收300个cookie.

4.Session与Cookie这间的关系:

session的ID作为Cookie的值在客户端与服务器之间进行传递.

四.JSP入门之构建实体Bean的原则方面:

1.bean类为公有

2.类成员为私有

3.必有一个无参构造

4.有set()和get()方法

5.方法命名为setXxx()或getXxx()方法

五.JSP入门之MVC实现数据封装方面

此数据封装标准按MVC总结.

所需内容:

◆Servlet

◆JavaBean

◆OperBean(DBconnection)

◆Jsp

由Servlet提取前台数据,然后将数据封装于JavaBean中,再实例化OperBean,调用OperBean中方法。

将JavaBean对象以参数的形式传过去,并进行一系列的操作后,返回数据存入ArrayList中或者其它集合内,并将集合对象封装Session对象中,便于在前台取值.

◆Servlet控制:

  1. ........  
  2.  Arraylist lis=new ArrayList();  
  3.  
  4.  String name=request.getParameter("username");  
  5.    
  6.  JavaBean bean=new JavaBean();  
  7.  bean.setName(name);  
  8.    
  9.  OperBean oper=new OperBean();  
  10.  lis=oper.operMethod(bean);  
  11.  
  12.  HttpSession session=request.getSession();  
  13.  session.setAttribute("list",lis);  
  14.  

◆OperBean逻辑:

  1. ...  
  2.  public ArrayList OperMethod(JavaBean bean)  
  3.  {  
  4.   ArrayList lis=new ArrayList();  
  5.   String usr=bean.getName("name");  
  6.     
  7.   String sql="select * from student where name='"+usr+"'";  
  8.     
  9.   DBconnection db=new DBconnection();  
  10.   ...//操作数据业务  
  11.     
  12.   return lis;  
  13.  }  

◆前台业务:

  1. ...  
  2.  ArrayList list=(ArrayList)session.getAttribute("lis");  
  3.  Iterator ite=list.iterator();  
  4.  while(ite.harNext())  //遍历输出  
  5.  {  
  6.   JavaBean bean=(JavaBean)ite.next();  
  7.  ...  
  8.   //取bean中值  
  9.  }  
  10.  
  11. //由此可以进行"用户登陆","数据的增删改查","注销登陆"等操作.....  
  12.  

以上所有Jsp入门技术都是没有与struts等框架相关的,只是简单的MVC思想,只有懂得以上简单的思想,才可以进一步的对框架这些高层次的东西钻研,对于JSP入门的开始,还有好多知识不懂,很多都在不停的学习之中,要多多总结才能提升!

【编辑推荐】

  1. JSP和Servlet中的几个编码的作用及原理
  2. 使用JSP include机制改进外观
  3. JSP编程应注意的六个常见问题
  4. JSP设计模式浅析
  5. 什么是JSP以及其强弱势
责任编辑:仲衡 来源: 互联网
相关推荐

2014-09-18 10:23:00

程序员

2019-12-09 16:41:40

5G运营商韩国

2010-05-06 08:55:23

ADO.NET

2017-07-12 13:23:34

IT员工压力

2020-03-27 12:30:39

python开发代码

2023-10-16 13:36:00

边缘计算数据

2022-04-05 11:29:40

Linux安装操作系统

2023-01-09 17:23:14

CSS技巧

2013-03-04 09:34:48

CSSWeb

2022-04-22 08:00:00

TEE安卓手机

2024-04-03 10:29:13

JavaScrip优化技巧

2015-09-02 10:12:17

数据安全云存储

2020-06-16 09:13:27

数据科学数据大数据

2013-07-11 13:56:37

大数据

2022-07-06 15:51:48

浏览器开发者工具

2011-05-05 11:31:00

2015-09-20 16:23:27

2010-06-03 11:39:28

网络性能

2015-03-24 13:31:06

2011-09-20 10:56:35

云计算PaaS
点赞
收藏

51CTO技术栈公众号