对于JSP入门的人来说,点点滴滴的基础知识是很重要的,从和谐简单的工具Jcreater4.0开始入手,到拥有Ecliplse之后的快速开发,对于一个初学者都是一个成长的过程。 那么现在开始我们的话题
对于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详解:
◆源码演示:
-
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);
-
}
-
}
-
◆当需要向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配置方面
◆源码演示
-
﹤!--config中的配置信息,当中配置需要在servlet中的xml中--﹥
-
﹤servlet﹥
-
﹤init-param﹥
-
﹤param-name﹥sess﹤/param-name﹥
-
﹤param-class﹥com.serv﹤param-class﹥
-
﹤/init-param﹥
-
﹤servlet-name﹥Myservlet﹤/servlet-name﹥
-
﹤servlet-class﹥com.Myservetl﹤/servlet-class﹥
-
﹤/servlet﹥
-
-
﹤!--此为对Myservlet进行映射--﹥
-
﹤servlet-mapping﹥
-
﹤servlet-name﹥Myservlet﹤/servlet-name﹥
-
﹤servlet-class﹥/url﹤/servlet-class﹥
-
﹤servlet-mapping﹥
-
-
﹤!--context中配置信息--﹥
-
﹤context-param﹥
-
﹤param-name﹥ses﹤/param-name﹥
-
﹤param-class﹥com.ser﹤/param-class﹥
-
﹤/context-param﹥
-
◆配置信息只能读取,并且config是在单个Servlet中能访问,context是全局访问
三.JSP入门之会话跟踪技术方面
◆用户授权
◆隐藏表单域
◆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的值在客户端与服务器之间进行传递.
四.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控制:
-
........
-
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入门技术都是没有与struts等框架相关的,只是简单的MVC思想,只有懂得以上简单的思想,才可以进一步的对框架这些高层次的东西钻研,对于JSP入门的开始,还有好多知识不懂,很多都在不停的学习之中,要多多总结才能提升!
(责任编辑:中博IT教育)