第一篇:Java Web 弹出框总结
Java Web 弹出框总结
在学习java web时想对于网页上的登录验证出错时采用弹窗的形式给于提示,于是走到下列大致7种方式的弹窗形式,有别于Alert弹窗,根据需求可以选择性使用
NO1.错误提示弹窗
JOptionPane.showMessageDialog(null, “alert”, “alert”, JOptionPane.ERROR_MESSAGE);
NO2.JOptionPane.showInternalMessageDialog(frame, “information”,“information”, JOptionPane.INFORMATION_MESSAGE);此处需要一个自定义的frame,不予演示
NO3.单选弹窗
JOptionPane.showConfirmDialog(null, “choose one”, “choose one”, JOptionPane.YES_NO_OPTION);
NO4.JOptionPane.showInternalConfirmDialog(frame,“please choose one”, “information”,JOptionPane.YES_NO_CANCEL_OPTION,JOptionPane.INFORMATION_MESSAGE);
此方法需要定义一个frame,此处不予演示
NO5.警告弹窗
Object[] options = { “OK”, “CANCEL” };
JOptionPane.showOptionDialog(null, “Click OK to continue”, “Warning”,JOptionPane.DEFAULT_OPTION, JOptionPane.WARNING_MESSAGE, null, options, options[0]);
NO6.输入弹窗
@SuppressWarnings(“unused”)String inputValue = JOptionPane.showInputDialog(“Please input a value”);
NO7.下拉选择弹窗
Object[] possibleValues = { “First”, “Second”, “Third” };
@SuppressWarnings(“unused”)Object selectedValue = JOptionPane.showInputDialog(null, “Choose one”, “Input”,JOptionPane.INFORMATION_MESSAGE, null, possibleValues, possibleValues[0]);
第二篇:Selenium 弹出框、页面跳转总结_dangliuzi
在eclipse中运行!验证处理过程。
Selenium 弹出框、页面跳转、遍历相同控件、执行js
1、对话框处理
Alert alert = driver.switchTo().alert();alert.accept();//确定 alert.dismiss();//取消
alert.getText();//取到文本内容
实际系统中,弹出窗口必定是某些操作完成、信息加载之后用做提示,因此弹出窗口有时出现得快,有时出现得慢,直接使用driver.switchTo().alert();很容易出现执行失败的情况。
咱们先判断是否出现了弹出框,封装成以下方法: protected boolean alertExists(int seconds){ long start = System.currentTimeMillis();while((System.currentTimeMillis()-start)< seconds * 1000){ try { driver.switchTo().alert();return true;} catch(NoAlertPresentException ne){ System.out.println(“not find alert!”);} catch(Exception e){ throw new RuntimeException(e.getMessage());} } return false;}
2、页面跳转,弹出窗口 //得到当前窗口的句柄
String currentWindow = driver.getWindowHandle();//得到所有窗口的句柄
Set
Iterator
System.out.println(“title,url = ”+window.getTitle()+“,”+window.getCurrentUrl());}
另外,还有的iframe 之间转换方法
driver.switchTo().defaultContent();切换到某个frame:
driver.switchTo().frame(“leftFrame”);从一个frame切换到另一个frame: driver.switchTo().frame(“mainFrame”);
切换到某个window:
driver.switchTo().window(“windowName”);
3、遍历控件
List
遍历
for(Iterator
4、执行JS
Web driver对Java Script的调用是通过JavascriptExecutor来实现的,例如: JavascriptExecutor js =(JavascriptExecutor)driver;
js.executeScript(“(function(){inventoryGridMgr.setTableFieldValue('”+ inventoryId + “','” + fieldName + “','”
+ value + “');})()”);
第三篇:javaWeb总结+小结
JavaWeb B/S与C/S的区别
1,从安装上来讲,B/S只需要在服务器端安装即可,而C/S却需要每一个客户端进行安装。2,从部署上来说,B/S只需要服务器能够支持即可,而C/S却对每一个客户端的电脑提出了要求。
3,从升级,维护角度来说,B/S只需要在服务器端升级维护即可,像网易的邮箱,而C/S却是服务器更新维护一次,客户端就要下载相关的补丁才能使用 4,从安全性来讲,B/S是基于服务器的,较之C/S安全性好
5,从本质上来说,B/S是基于请求驱动的,即客户端发送一个Http请求,然后服务器进行处理之后,响应给客户端,而C/S却是基于事件驱动的,像腾讯的QQ。
6,从耦合度来讲,B/S与服务器端耦合,而C/S却是与客户端的操作系统进行耦合。但是Client/Server(从游戏的角度来讲)较之Brows/Server具有优质的画面。
Servlet的使用步骤:
1,创建一个JAVA类,存放在com.fit.servlet包中,并且此类extends HttpServlet类,才能成为一个Servlet 2,覆写doGet()和doPost()方法
3,最后,在web.xml文件中进行Servlet配置。具体的配置如下:
就是指Servlet从创建出实例对象到销毁的过程。它是一个容器,负责创建实例来接受客户端的请求,并且以多线程的方式响应给客户。具体过程如下:
Servlet被服务器实例化之后,容器运行其init方法进行初始化,请求到达时运行其service方法,在此过程中仅创建一个对象,然后service方法自动调用与请求相应的doXxx方法,当服务器决定将实例进行销毁时,再调用其destroy方法。
与CGI(通用网关接口)的区别在于,Servlet处于服务器进程中,它通过多线程的方式运行其service方法,一个实例可以服务于多个请求,并且其实例一般不会销毁,而CGI对每一个请求都产生新的进程,服务完成后就销毁,所以效率低于Servlet 作用:可以用来进行接收客户端的请求,也可以进行请求流的控制。
Http协议:(了解)
首先它是(Hypertext Transfer Protocol)超文本传输协议。
HTTP报文由从客户机到服务器的请求和从服务器到客户机的响应构成。请求报文格式如下:
请求行 - 通用信息头 - 请求头 - 实体头 - 报文主体
请求行以方法字段开始,后面分别是 URL 字段和 HTTP 协议版本字段,并以 CRLF 结尾。
应答报文格式如下:
状态行 - 通用信息头 - 响应头 - 实体头 - 报文主体
状态码元由3位数字组成,表示请求是否被理解或被满足。原因分析是对原文的状态码作简短的描述,状态码用来支持自动操作,而原因分析用来供用户使用。客户机无需用来检查或显示语法。工作流程:
一次HTTP操作称为一个事务,其工作过程可分为四步:
首先客户机与服务器需要建立连接。只要单击某个超级链接,HTTP的工作就开始了。
建立连接后,客户机发送一个请求给服务器,请求方式的格式为:统一资源标识符(URL)、协议版本号,后边是MIME信息包括请求修饰符、客户机信息和可能的内容。
服务器接到请求后,给予相应的响应信息,其格式为一个状态行,包括信息的协议版本号、一个成功或错误的代码,后边是MIME信息包括服务器信息、实体信息和可能的内容。
客户端接收服务器所返回的信息通过浏览器显示在用户的显示屏上,然后客 户机与服务器断开连接。
Javascript的作用:
1,进行验证(通过正则表达式,在css+HTML的部分特性进行浏览器端的格式验证工作)
2,进行交互(将客户端的一个请求通过JavaScript可以发送到服务器端,也可以在浏览器端进行人机的交互,突破了以前静态页面的交互性限制)3,进行特效的处理,如走马灯,时间时钟。
Servlet生命周期:(详细)是指Servlet实例从被创建到其消失(对象销毁,回收)中间的时间及各个阶段,称之为Servlet生命周期。
前提:web服务器加载类。之后执行以下过程:
1,实例化:Servlet容器创建Servlet实例,具体就是当接收到客户端的第一次请求时,Servlet容器负责创建Servlet的一个实例。且在此过程中仅创建一个实例,通过多线程的方式响应客户端的请求
2,初始化:该容器调用init()方法。
3,服务:当请求到达时,该Servlet容器自动调用server()方法,根据客户端发送请求的方式,选择doXxx()方法执行
4,销毁:当web服务器被卸载的时候,调用destroy()方法进行对象的销毁。请看以下的一段代码: package com.fit.servlet;import java.io.IOException;import javax.servlet.ServletException;import javax.servlet.http.HttpServlet;import javax.servlet.http.HttpServletRequest;import javax.servlet.http.HttpServletResponse;public class Test extends HttpServlet { private static final long serialVersionUID = 1L;
public Test(){
super();
System.out.println(“===========================”);
} public void destroy(){
System.out.println(“对象被销毁!”);} public void init()throws ServletException {
System.out.println(“对象初始化!”);} protected void doGet(HttpServletRequest request, HttpServletResponse response)throws ServletException, IOException {
System.out.println(“get方法执行”);} protected void doPost(HttpServletRequest request, HttpServletResponse response)throws ServletException, IOException {
this.doGet(request, response);} protected void service(HttpServletRequest arg0, HttpServletResponse arg1)
throws ServletException, IOException {
System.out.println(“服务开始启动了!”);
super.service(arg0, arg1);}
}运行效果如下:
=========================== 对象初始化!服务开始启动了!
get方法执行
2011-7-19 12:07:04 org.apache.catalina.core.StandardContext reload 信息: Reloading this Context has started 对象被销毁!
分析原因:
1,实例化对象发生在客户端请求第一次到达的时候,而不是类被加载的时候。2,对象只被实例化一次.3,如果service()被覆写的话,则调用的时候加入super.service(arg0, arg1);这句话时候才可以清楚的调用的doXxx()方法,如果不加入此句话,那么将不会执行doGet()方法。所以一般不要覆写service()方法。只需要覆写doGet()和doPost()方法。
4,当web服务器被卸载的时候,将执行destroy()方法。进行对象的销毁!
Jsp页面构成元素,Jsp跟Html的区别,优势
Jsp定义:(Java Server Page)Java服务器端语言,组成如下: 1,静态模板:由HTML,css,JavaScript等元素构成。
2,指令:设定网页元素的属性,用于提供这个歌JSP网页的相关信息。
3,脚本元素--声明:<%!...%>,在此之中可以进行变量,常量的定义,类,方法都可以声明,但是一般不用。
4,脚本元素--Java脚本:<%...%>,在此期间可以进行Java代码的拼写。5,脚本元素--表达式:<%=..%>,用于表达式输出时使用。
6,动作:利用JSP动作可以重用JavaBean组件,可以动态的包含页面,也可以进行服务器端的跳转(即将用户的请求转发给其他的页面)。7,注释:
--HTML注释:,此种注释可以在页面中看到,成为客户端注释。--Jsp注释:<%----%>,此种注释在页面中看不到,也成为服务器端注释。--Java注释:
单行注释:// 多行注释:/*„„„*/ Jsp优点:使用HTML,CSS等技术构建页面的模板部分,用Java语言根据用户的输入动态生成可变的内容部分。既可以实现HTML控制页面布局,也亦可以实现Servlet的功能,实现了内容与表示分离。Jsp的常见指令,并说出静态包含和动态包含的区别
Page指令:<%@ page language=”java” import=” 完整的包.类名称” autoFlush=”true[false]” errorPage=”文件名” isErrorPage=”false[true]” isThreadSafe(设置是否能多线程使用)contentType=”text/html;charset=ISO-8859-1” %> 包含指令:<%@ include file=”文件名”%> taglib指令:此指令用于在Jsp页面中引入用户自定义的标签库。例如: <@% taglib url=http://java.sun.com/jsp/jstl/core prefix=”c”%> 静态包含跟动态包含的区别:
<%@ include file=”文件名%>,此包含属于静态包含,是指先将文件包含进来然后在进行编译,编译后生成的class文件中,被包含的文件在静态块中。且此种包含不允许带参数。
Jsp常见的动作,调用JavaBean相关:
输入/输出对象
request:表示客户端对网页的请求
response:用于处理Jsp生成的响应,使用Http协议将响应发送给客户端。
out:表示从response中取得的输出流。常用的方法有write(),print(),println()等,用于在页面中输出文本形式的响应内容 作用域通信对象
pageContext:此通信对象的作用域仅在当前页面有效,一旦跳转则不可用
request:此通信对象的作用域针对的同一个客户的请求,如果不是同一个请求则不可以使用
session:此通信对象的作用域适用于一次会话,即打开的同一个浏览器的所有页面都可以适用
application:此通信对象的作用域适用于基于WEB服务器的所有会话,适用于监听器 Servlet对象
page:指向当前Jsp页面经过转译(jsp.java文件),编译(.java文件.class文件)后的对象本身,即编译后的Servlet对象本身
config:是在一个Servlet初始化时,服务器向它传递的初始化信息。初始化信息可以在web.xml中找到。错误对象
execption:表示Jsp页面运行时抛出的异常对象,可以在专门准备的错误处理页面中访问这个异常对象。
Jsp执行过程:
jsp文件转译:当客户端请求一个正确的Jsp文件时,将Jsp—>.java文件(即将Jsp文件翻译成相应的Servlet类的源文件)编译:.java文件.class文件,即将Servlet类的源文件进行编译成为.class的Servlet文件。调用Servlet的service()方法响应用户的请求。
描述Jsp和Servlet的区别,共同点,各自的应用范围:
1,从发展上来看,Jsp可以避开Servlet的输出页面的繁琐步骤,它集合了HTML和Servlet的优点。
2,从本质上来说,Jsp是Servlet的扩展,它是Servlet的简易形式。Jsp经过转译之后就成为了类Servlet。
3,从创建方式上来说:Jsp由HTML代码和JSP标签构成,而Servlet则完全是由程序代码构成擅长于流程控制和事务处理的类
4,从使用角度来说:在MVC中,Jsp担任的是VIEW层,侧重于视图,而Servlet则充当的控制层,侧重于控制逻辑。请求转发和重定向
response.sendRedirect():利用response对象向客户端发回一个响应指示其访问其他URL资源,或者说是一个web组件向另一个web组件发送一个新的请求,属于重定向,地址栏有变化。且不可以传递属性request参数,当所有的代码执行完之后才进行重定向。
request.getRequestDispatcher().forword(req,resp):web组件将一个请求转发给另一个web组件,他们始终是同一个请求,在此期间可以传递request属性参数,地址栏没有变化。且一执行到此代码处,后边的将不再执行
JavaBean的组成:
类必须是具体的,公共的。提供无参数的构造方法
提供getter()和setter()方法访问它的属性。版权所有@杨肖飞yangxf159371@126.com
第四篇:javaweb课程设计
课程设计:基于Java Web的讨论区BBS系统的设计与实现
本系统要求实现以下主要功能:
(1)登录:提供用户登录系统的功能,需要输入用户名和密码
(2)注册:提供用户注册的功能,需要输入用户名、密码、密码确认、Email、QQ
(3)修改注册信息:提供用户修改注册信息的功能,可以修改密码、Email、QQ
(4)浏览讨论区:用户登录后就可以浏览系统中已存在的讨论区,用户可以查看某讨论
区的详细信息,也可以进入该讨论区浏览已发表的帖子,以及回帖
(5)创建讨论区:用户可以创建讨论区,每个讨论区包含一个名称和顺序号,每个讨论
区的名称在系统中是唯一的,顺序号表示讨论区在列表中的排序
(6)修改讨论区:提供讨论区名称和顺序号的修改功能
(7)删除讨论区:提供讨论区删除的功能,方便管理员进行讨论区管理
(8)浏览帖子:用户进入一个讨论区后,可以看到帖子列表,包含帖子主题、作者、创
建时间、回复次数,点击一个帖子,可以查看该帖子的内容和回帖
(9)创建帖子:用户进入一个讨论区后,可以选择创建一个新帖子,需要输入帖子标题
和内容
(10)修改帖子:提供给管理员使用,修改帖子标题和内容
(11)删除帖子:提供给管理员使用,方便管理员进行帖子整理
(12)回复帖子:用户在浏览帖子信息的时候,可以进行回复
第五篇:javaweb学习心得
学习心得
在写心得之前总结下中级部分学习的内容,我们的中级部分主要学习了html,css,javacript,xml,dtd/scheam,以及java ee 中的jsp,servlet,过滤器,监听器,JSTL,EL,jQuery,Ajax。
下面就各个模块进行总结:在学习html时,我是对这个没太在意的,因为里面全部是标签,没有需要理解的内容,全部是属于识记的,所以在学习时相对轻松,对于html常用的标签都是非常清楚的form中的十一种类型,常用的有text,password,hidden,submit,button,radio,checkbox,等其他的标签如div,table,span,select都是重要的标签.Css的学习:虽然说在标签中也可以定义样式,但是这么做看起来不是那么明智,我在学CSS时还是比较努力的,所有的样式效果都测试过,并且写了相应的案例,只是过了不到3个月就忘了一大半,很多时候都是查文档才能写出来的,虽然CSS对于我们来说不必要非常精通,但是我觉得掌握的东西越多,以后的工作就越轻松,所以在中级结束后也会去看看前面的笔记和案例。
Javascript:js 我认为是最重要的,甚至于超过servlet,jsp,在上课期间,讲的内容还是比较少的,就javascript中创建对象来说吧,应该只讲过3中方法,虽然在一般的情况下是用不上的,但是我觉得还是有必要学习的,这样有助于看懂别人写的框架,在javascript这部分学习中讲的最多的还是dom操作,不过我觉得用dom操作太繁琐了,写的代码太多,而且效率看起来也不高,后面就是讲的事件,事件也算是简单的,只是对触发的事件进行相应的响应。除了这些就是javascript流程控制,对象一些基本语法,这些和java类似,所以在上课时没有讲得太多。
Xml: Markup Language可扩展标记语言。它是由SGML(Standard Gerneralized Markup language)发展而来的,允许开发者自定标签,可以将标签和内容有效的分离。在XML技术里,可以编写一个文档来约束XML文档的书写规范,称之为XML约束。本文主要介绍DTD与Schema两种约束,在这里学习了dtd,scheama,定义XML约束,这部分的学习是我感觉最累的一部分,DTD还算好,SCheama里面的内容,现在都忘了,没有任何记忆,只知道在XML约束中有着两中方式,还好这些在刚开始工作时是用不上的,因此我也没有用很多时间来学习。
Servlet:我觉得是比较简单的,可能是因为它是java代码,容易理解。首先讲的是开发环境的配置,安装tomcat,了解tomcat下的目录,以及web工程下的目录。后来是讲了servlet的访问方式,post和get的区别,处理中文乱码是servlet中一个重要的知识点,几乎每个项目都会遇到这个问题。主要乱码有get,post乱码,是通过设置request或者response的编码方式来实现的。Servlet间的跳转方式有重定向和转发,对于重定向和转发的区别,现在理解的很透彻了,重定向是不能获取request中参数,是客户端的两次请求,而转发是服务器内部跳转,不过,两种在设置过滤器的情况下,都要通过过滤器才能跳转。Servlet的生命周期是笔试的必考题,其实这是很简单的,只需要理解,没必要死记硬背的,session算是重要的知识点,很多数据都是存储在内存中,如购物车,用户信息等,还可以对session设置生存时间。说到session就必须说说四种会话跟踪技术,cookie,URL重写,表单域隐藏和session。
JSP:JSP实际上和servlet是一样的,只不过两者侧重点不同,JSP的内置对象和作用域大致是一样的,JSP中还有动作,常用的有操作JavaBean的动作,页面跳转的动作,以及包含的动作。这里重点提到两种包含的区别。在JSP还讲过jstl和EL表达式,都是基础的应用,不过写自定义的标签还是要有一定的java基础的,我开始不太理解标签的解析过程,后来看了几个例子,发现自定义的已不是那么难。
jQuery:jQuery可以说是中级部分学的最好的,主要是它方便了,特别是选择器,而且避免了一些浏览器的差异,所以在学习jQuery后,就再也不想用javascript来获取元素了。不仅如此,jQuery中封装的Ajax操作也是非常简单,不需要自己封装一个类,$.get和$.post 能够省去很多麻烦,jQuery的监听事件也是很简单,不需要在标签中添加对应事件,可以动态的绑定事件。还有就是dom操作更是方便。我在学习完Ajax,json后就发现,即使是没有JSP,也能做出一个动态页面出来,只是会存在效率问题。
总结:虽然说这上面的知识大部分都掌握了,但是能否灵活运用才是重点,所以在今后的学习中多思考问题是否有多种解决方法。