首页 > 其他分享 >Jsp基础知识总结

Jsp基础知识总结

时间:2023-04-26 12:32:45浏览次数:39  
标签:总结 servlet Jsp request 基础知识 cookie jsp Servlet 客户端


[code]
首先来说一下我们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配置

<!--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是全局访问

三.
========================会话跟踪技术总结========================

用户授权.
隐藏表单域
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中值 

 }




//由此可以进行"用户登陆","数据的增删改查","注销登陆"等操作.....
[/code]

标签:总结,servlet,Jsp,request,基础知识,cookie,jsp,Servlet,客户端
From: https://blog.51cto.com/u_16087012/6226900

相关文章

  • C语言基础知识
    一维数组inta[2]={1,2},一维数组名a代表的是数组第一个元素的地址,不代表数组中所有元素。二维数组inta[3][4]总共是12个元素,可以当作3行4列来看待,这十二个元素的名字依次是:a[0][0],a[0][1],a[0][2],a[0][3]a[1][0],a[1][1],a[1][2],a[1][3]a[2][0],a[2][1],a[2][2],a[2][3]......
  • vi总结
    yy拷贝当前行nyy拷贝当前后开始的n行,比如2yy拷贝当前行及其下一行。p 在当前光标后粘贴,如果之前使用了yy命令来复制一行,那么就在当前行的下一行粘贴。shift+p在当前行前粘贴ndd剪切当前行之后的n行。利用p命令可以对剪切的内容进行粘贴......
  • shell编程总结
    一,执行shell程序文件有三种方法(1)#shfile(2)#.file(3)#sourcefileshell常用的系统变量$#:保存程序命令行参数的数目$?:保存前一个命令的返回码$0:保存程序名$*:以("$1$2...")的形式保存所有输入的命令行参数$@:......
  • 决策树算法总结
    决策树(DecisionTree)决策树是一种树形结构,以信息熵为度量构造一棵熵值下降最快的树,它每个内部节点表示在某个特征上的分割使得分割前后熵值下降最快,到叶子结点处的熵值为零,此时每个叶结点中的样本都被归为同一类(训练时叶结点中数据的真实类别未必为同一类)。决策树算法递归的选择......
  • 4月25号总结
    今天老师专门找了几个组讨论问题,非常幸运,我们就在其中,老师对我们的选题作了详细的分析划分了我们需要做什么,完成什么功能,主要分为以下几点:1、首先要把图片中表格的信息存储到数据库中,只有存到数据库里了,才有后面对数据的一系列操作2、添加历史记录,标题,关键字,供用户更方便的使用......
  • 第一阶段绩效总结
    根据对团队的奉献值王集洲:独自完成物流公司后台系统(100分)陈俊杰:完成达梦数据库连接、客户端Web界面设计(70%)、后端Java代码编写(80%)(50分)冯嘉乐:客户端Web界面设计(30%)、后端Java代码编写(20%)(25分)......
  • 总结20230425
    代码时间(包括上课):2h代码量(行):100行博客数量(篇):1篇相关事项:1、今天进行了数据库的上机,进行了SQL语句的复习。2、今日进行了python的上机,进行了python面向对象的知识的练习。3、今天进行了四级分数的查询,很好!过了!。......
  • Linux分区重要总结
    df-h :以比较容易读的格式显示目录和使用情况df -i  :显示每个分区和目录的inode使用情况lsblk  -f  列出所有磁盘的分区信息fdisk-l  列出系统里面的磁盘信息分区的类型:  Linux的分区id是83  ,交换分区的类型是82   逻辑分区的类型是8e ......
  • Java静态代理总结
    总结:真实对象和代理对象都要实现同一个接口代理对象要代理真实角色优点:代理对象可以补充真实对象所要做的事情真实对象只需要关注自己做的事情代码示例:执行结果:......
  • 2022年终总结
    今年主要成就是:(1)身体调整到最佳状态(2)工作有些变动但最终换成了自己满意的工作(我的优先级:研究院>券商>web3>传统工业>web2)(3)入门玄学并认识了很多朋友(4)工作站各项配件的配置拉满(双路7t83,sx1000lpt,ssgx2,p4800xx2,利民b12)(5)确立布客社区的四大方向,并且开设讨论群,逐渐走向正轨。明年规划:(1)玄......