关于java web的一段javaweb代码生成器:1:用到了什么技术或者具

学海拾遗:使用idea编写你的第一个java web程序
学海拾遗:使用idea编写你的第一个java web程序
一只安静的程序猿
1、开发环境准备(1)下载Apache_Tomcat8.5.16(根据自己的Windows操作系统选择x64/x86版本)(2)下载jdk8u131(根据自己的Windows操作系统选择x64/x86版本)(3)下载idealU及其破解jar(注意,此处一定要使用U版本。C版本虽然免费但是受限太严重)2、将tomcat解压到D盘根目录备用3、安装JDK。运行安装程序,一路点击“下一步”直到完成即可4、安装及破解idea,请自行度娘,在此不再赘述5、运行idea程序6、点击“Create New Project7、依次操作:Project SDK选择“1.8(java version '1.8.0_131')”;勾选“Web Application”;勾选“Create web.xml”;点击“Next”8、设置Project name为“HelloWeb”;点击“Finish”9、按键盘组合建“Alt + 1”10、在“WEB-INF”文件夹中新建“classes”、“lib”子文件夹11、编辑“index.jsp”文件,添加运行测试需要显示的文字信息12、配置“Project Structure”13、选择“Modules”-&“Paths”-&“Use module compile output path”14、将Output Path、Test Output Path设置成为刚才新建的“classes”文件夹路径15、选择“Modules”-&“Dependencies”,将Module SDK设置为“1.8(java version &1.8.0_131&)”16、点击“+”号,选择“JARs or directories”选项17、选择刚才新建的“lib”文件夹,点击“OK”按钮18、选择“Jar Directory”,点击“OK”按钮19、勾选上面添加的“lib”文件夹路径,点击“OK”按钮20、点选“Edit Configurations”21、点击“+”按钮21、点击“Tomcat Serve”-&“Local”菜单项22、Name填写“TomJavaWebSer”23、Application server选择“Tomcat 8.5.16”;HTTP port填写:8090(以区别于tomcat默认8080的端口号);点击“OK”按钮24、选择“Deployment”标签,点击“+”按钮25、选择“Artifact”选项26、选择“/”选项(即,web站点根目录),点击“OK”按钮27、选择“TomJavaWebSer”服务器选项,点击“Run”绿箭头按钮28、Tomcat启动后会自动使用浏览器打开站点的index首页
本文仅代表作者观点,不代表百度立场。系作者授权百家号发表,未经许可不得转载。
一只安静的程序猿
百家号 最近更新:
简介: 怀旧、清新、思考、闲趣。分享生活点滴
作者最新文章JAVAWEB实现简单的商城项目(一)实例代码解析
作者:茶饮月
字体:[ ] 类型:转载 时间:
本文给大家分享一段实例代码给大家介绍JAVAWEB实现简单的商城项目(一),非常具有参考价值,感兴趣的朋友一起学习吧
&一.项目功能结构
3.对应sql语句
CREATE DATABASE
create table user(
id int(11) primary key auto_increment,
username varchar(100),
password varchar(100),
nickname varchar(100),
type int(5)
INSERT INTO user VALUES (null,'admin','7946521','管理员',1);
CREATE TABLE address(
id INT(10) PRIMARY KEY AUTO_INCREMENT,
name VARCHAR(255),
phone VARCHAR(100),
postcode VARCHAR(100),
user_id INT(10),
CONSTRAINT FOREIGN KEY (user_id) REFERENCES user(id)
INSERT INTO address VALUES (NULL ,'安徽阜阳','','236000','1');
SELECT t1.*,t2.* FROM address t1 LEFT JOIN user t2 ON t1.user_id = t2.id where t1.user_id =1 ;
create table orders(
id int(11) primary key auto_increment,
buy_date datetime,
pay_date datetime,
confirm_date datetime,
status int(5),
user_id int(11),
address_id int(11),
CONSTRAINT FOREIGN KEY(user_id) REFERENCES user(id),
CONSTRAINT FOREIGN KEY(address_id) REFERENCES address(id)
create table category(
id int(11) primary key auto_increment,
name varchar(100)
create table goods(
id int(11) primary key auto_increment,
name varchar(100),
price double,
intro text,
img varchar(100),
stock int(10),
c_id int(10),
CONSTRAINT FOREIGN KEY(c_id) REFERENCES category(id)
create table goods_orders(
id int(11) primary key auto_increment,
goods_id int(10),
orders_id int(10),
CONSTRAINT FOREIGN KEY(goods_id) REFERENCES goods(id),
CONSTRAINT FOREIGN KEY(orders_id) REFERENCES orders(id)
二.项目准备
1.实体类实现
分别建立dao,filter,model,util的包,并在model中实现实体类,这里以User.java为例.
注意对于数据库中外键,比如adress表中有外键user_id,那么在Adress.java中就可以直接给个User对象,在取adress表的时候就把user一并取出来.
package com.
import java.util.L
* Created by nl101 on .
public class User {
private S//昵称
//1表示管理员,2表示注册用户
private List&Address&
public List&Address& getAddresses() {
public void setAddresses(List&Address& addresses) {
this.addresses =
public int getId() {
public void setId(int id) {
public String getUsername() {
public void setUsername(String username) {
this.username =
public String getPassword() {
public void setPassword(String password) {
this.password =
public String getNickname() {
public void setNickname(String nickname) {
this.nickname =
public int getType() {
public void setType(int type) {
this.type =
Adress.java
package com.
* Created by nl101 on .
public class Address {
//直接给user对象,来代替user_id
public int getId() {
public void setId(int id) {
public String getName() {
public void setName(String name) {
this.name =
public String getPhone() {
public void setPhone(String phone) {
this.phone =
public String getPostcode() {
public void setPostcode(String postcode) {
this.postcode =
public User getUser() {
public void setUser(User user) {
this.user =
2.分页框架准备
分页主要是写pager.java和SystemContext.java以及SystemFilter.java三个类.可以参开前面的博文,jsp通用分页框架
完整建立后如下
关于JAVAWEB实现简单的商城项目就给大家介绍到这里,希望对大家有所帮助!
您可能感兴趣的文章:
大家感兴趣的内容
12345678910
最近更新的内容
常用在线小工具利用java代码和web拦截器轻松实现一个app抓包工具 - 简书
利用java代码和web拦截器轻松实现一个app抓包工具
目前app测试时我们需要对接口数据进行抓包,对于app的抓包,我们可以使用很多现成的工具,比如fiddler、wireshark、charles等,基本上可以满足要求,但是对于一些定制化的需求,比如说:我们需要将抓包的数据进行篡改后再发送到服务器,或者对请求的数据新增标志字段以便定位问题,或者更多需要更改数据的需求,传统抓包工具已经很难实现,需要我们探索新的方式方法。
我们知道,一般的抓包工具都是使用代理的方式来截取请求,然后以ui的方式展现出来,我们本次也直接使用这种代理的方式来实现抓包,然后对抓取的包进行数据的重组和处理后再发送到原本请求的服务器获取结果返回给app即可。整个流程如下(此流程仅适用于http、https协议):
说明:代理服务器抓取到app到服务器之间的包,进行解包之后,对数据进行处理(更改或者新增)后再次进行数据封包,将封包后的数据发送到原服务器之后将数据返回给app即可,这期间我们在解包之后可以看到数据的具体信息。
整个系统最核心的内容无疑为代理服务器,甚至有些人对数据的解包和封包和再次发送感觉实现起来很难。如果app的请求为http协议,其实我们可以使用现成的工具,最直接的就是将代理服务器伪装成一个web服务器,app发送给web服务器的数据可以直接被web服务器解包,之后可以使用httpclient再次模拟客户端做封包操作发送给app:数据拦截:web拦截器数据解包:servlet(request)数据处理:自助java类数据再封包和发送:httpclient数据的接收:httpclient数据返回app:servlet(response)整个流程变为:
下面我们从代码层面来说明整个过程:1.搭建一个web的服务器环境2.写一个拦截器
3.代理服务器代码packagecom.pingan.testcloud./*** ClassName:LoginFilter** @Description:过滤器,白名单里所有接口都要先经过此过滤器,白名单请在web.xml中设置* @author dingjingjing058* @date 日*/importjava.io.IOEimportjava.io.PrintWimportjava.net.URLDimportjava.net.URLEimportjava.util.ArrayLimportjava.util.Eimportjava.util.HashMimportjava.util.Limportjava.util.Mimportjavax.servlet.Fimportjavax.servlet.FilterCimportjavax.servlet.FilterCimportjavax.servlet.ServletEimportjavax.servlet.ServletRimportjavax.servlet.ServletRimportjavax.servlet.http.HttpServletRimportjavax.servlet.http.HttpServletRimportjavax.servlet.http.HttpSimportorg.slf4j.Limportorg.slf4j.LoggerFimportcom.pingan.testcloud.httphelper.BasicPimport com.pingan.testcloud.httphelper.HttpClientHimportcom.pingan.testcloud.httphelper.ResponsePpublic classLoginFilter implements Filter {publicLogger logger = LoggerFactory.getLogger(this.getClass());@Overridepublic void destroy() {// TODO Auto-generated method stub}@SuppressWarnings("rawtypes")@Overridepublic void doFilter(ServletRequest req,ServletResponse res, FilterChain chain)throws IOException,ServletException {HttpServletRequest request =(HttpServletRequest)HttpServletResponse response =(HttpServletResponse)request.setCharacterEncoding("UTF-8");//获得用户请求的URI,并进行截取String url= request.getRequestURI();String[] path =url.split("/");// System.out.println(path);Enumerationenu=request.getParameterNames();String paraString="";while(enu.hasMoreElements()){StringparaName=(String)enu.nextElement();paraString=paraString+paraName+":"+request.getParameter(paraName)+"";}<("用户请求地址为:"+url+"请求参数为:"+paraString);if(ConfigReader.getWhiteListMap().get(path[path.length-1])==null){//如果不在白名单,则进行如下校验String method=request.getMethod();if(method.equals("POST"))method="post";elseif(method.equals("GET"))method="get";BasicParameter bp1 = newBasicParameter(url,"get","FILTER");enu=request.getParameterNames();while(enu.hasMoreElements()){String paraName=(String)enu.nextElement();bp1.addParamters(paraName,request.getParameter(paraName));Enumerationen=request.getHeaderNames();Map headers=newHashMap();while(en.hasMoreElements()){//取出信息名String name=(String)en.nextElement();//取出信息值String value=request.getHeader(name);headers.put(name, value);}bp1.setHeaders(headers);}List rps= new ArrayList();try {HttpClientHelper client=newHttpClientHelper(request.getServerName(),request.getServerPort(),"http");client.addHttpRequest(bp1);rps=client.run();} catch (Exception e1) {// TODO Auto-generatedcatch blocke1.printStackTrace();}for(Map.Entryen:rps.get(0).getHeaders().entrySet()){response.addHeader(en.getKey(),en.getValue());}response.setContentType("text/html");response.setCharacterEncoding("UTF-8");PrintWriter out =response.getWriter();out.print(rps.get(0).getRespdata());out.flush();out.close();//response.sendRedirect("./login.html");//chain.doFilter(request,response);//已经登陆,继续此次请求}else{//在白名单里,继续此次请求chain.doFilter(request,response);}}@Overridepublic void init(FilterConfig config)throws ServletException {}}注意:1.代码中使用了httpclient,具体代码封装请参加技术文档。2.对于解包后的数据操作未做详细讲解,可以参考sevlet技术文档。最后,对手机设置网络代理,代理指向web服务器的ip和端口,试试效果吧。一周消息树:Java、.NET、Web技术应用特点
发表于 16:25|
作者单明珠
摘要:日至4月25日,CSDN通过在线调查问卷渠道对中国软件开发者进行调查,针对这份调查报告整理出的文章深受读者欢迎。本周,《ATA员工致CEO公开信:除了作秀,你还做了什么?》也引起了很大反响。
日至4月25日,CSDN通过在线调查问卷渠道对中国软件开发者进行调查,调查得到了近万名开发者的踊跃支持。通过调查,我们整理出了一系列的文章,、,这类文章深受读者的欢迎,也可帮助大家解读当前中国软件开发者形势。更多精彩内容,让我们通过一周消息树来回顾!参与此次调查的开发者中,从事Java开发的开发者占总调查对象的51.27%,.NET开发人员占总调查对象的23%,Web开发人员占据调查对象的33%。现在我们就来看下前面三种技术的应用特点。Jave技术应用特点:Java开发者使用最多的JDK版本是JDK1.6和JDK1.7;使用最多的服务器是Tomcat,最常用的开发工具是Eclipse;.NET技术应用特点:.NET开发者对.NET平台最满意是其语言和框架设施部分,开发人员最关注的技术分别是ASP.NET MVC、ASP.NET Web Pages、Windows Azure相关的云计算技术;Web技术应用特点:有14.18%的开发者不知道他的Web应用页面是否符合Web标准;Web开发工具使用最多的是Eclipse Web;Web应用排名前三的分别是Discuz!、WordPress、PHPWind。相关阅读:近日,有网友在雪球社区公布ATA员工致CEO孙振耀的公开信,对其上任后相关做法进行了指责。此公开信一经公开,便在CSDN引起强烈反响。以下为主要内容:“员工们都说,你(CEO 孙振耀)来了ATA之后重点做了三件事。第一作秀,不惜花费巨资,把全国的员工集中到上海,就是为了有机会让你能在所有员工面前做一场秀,吹嘘你的惠普经历。第二搬家,ATA在贡院成长壮大,是ATA的风水宝地,但你为了回味在惠普时的旧梦,不惜花重金重装一个办公室。第三开是发了一个让人笑破肚皮的应用。我们想知道你要带领ATA干什么?”据报道,谷歌对当今最热门的云计算技术Docker给予了相当大的支持。“集装箱化思维”被运用在软件“运输”上,Docker可以看作是用代码编写出来的国际集装箱,它可以把任何应用及相关依赖项打包成一个轻量、可移植、自包涵式的容器。在谷歌眼中,Docker也是一个足以改变人们创建软件方式的东西,它能让任何程序开发人员更轻松地、即刻地体会到海量计算性能的优势。有网友认为:“谷歌和Docker对应用如何构建志同道合,他们之间的结合就是天作之合。”Docker日益火爆已颠覆人们构建软件思维方式,今后必将引导一个新的云计算世界,所有云计算服务选手将同台竞争。本周消息,据国外媒体报道,苹果将在今年10月份推出传闻已久的iWatch,该产品采用可弯曲的OLED显示屏,运行iOS 8系统,支持Touch ID功能,HealthKit或将成为iWatch的核心功能,有男、女两款,价格预计在$199至$299之间。从目前来看,除了苹果,其他科技巨头公司都争相进入可穿戴设备领域,但市场上的可穿戴产品并没有获得用户的青睐。业内分析认为,虽然多家公司都先于苹果发布可穿戴设备,但苹果凭借iPhone已有的市场份额和相关应用软件,拥有着独特优势,很有可能会取得成功。相关阅读:无疑,软件开发是个赚钱的行业。但在不同的国家,他们的收入也截然不同。日前,彭博社公布了一份详细的数据,从上图可以看出,排名前十的都是发达国家,其中瑞士的软件开发者年收入最高,位居第一,高达104200美元;美国排名第三。后彭博社又做了一份数据,将软件开发者的收入除以人均GDP,得出了一个横向的比率,结果发现排名在前十的国家大多是发展中国家。最后,彭博社指出,有些数据反映了一个有趣的事情,在石油资源丰富的国家,软件开发者收入远远低于人均GDP。本周,Mozilla公司正式推出了Firefox 30正式版,支持Windows、Mac、Linux和Android系统。相比较Firefox 29的全新UI(Australis交互界面)、高度自定义功能区和支持新版云端同步等功能,Firefox 30只能算一次小的升级,主要还是改善相关功能服务,但也有其亮点:支持GStreamer 1.0技术、内置全新的Gecko 30内核等。值得注意的是,从Firefox 30开始将会使用半静默升级,官方提供了两种方法:一种是静默下载最新版Firefox,第二种与第一种类似,不过不采用静默下载然后通过UAC提示用户,而是,要么Firefox在后台静默下载然后询问用户是否想运行最新版,要么让用户先选择,然后开始下载。本周三,谷歌宣布将以5亿美元的价格收购卫星公司Skybox Imaging。Skybox Imaging成立于2009年,主要发射卫星、建设数据中心,从而为用户提供地球上各个地方的照片和高清视频。外媒解读,谷歌收购该公司,首先是想增强和完善谷歌地图和Goolge Earth服务,其次则是希望利用它的技术让世界上所有人都能上网。虽然我们已经步入移动互联网时代,但去年有资料显示,全世界大约有三分之二,即45亿人无法使用互联网(现在来看,数据可能不太准确),但依然有这么多人、这么大的规模无法上网。加上今天收购的卫星公司Skybox,谷歌已经用气球、无人驾驶飞机和卫星三个方式来提供互联网服务。虽然这样举动根本上是为了提高自家服务,但由此来看,提供互联网基础服务实际上也是一大机遇。北京时间6月11日消息,阿里巴巴官方微博确认已全面收购UC优视公司,前者将组建UC移动事业群,UC董事长兼CEO俞永福担任事业群总裁,并进入阿里集团战略决策委员会。据悉,本次整合主要以阿里巴巴集团股票置换为主,配合部分现金。总金额或将创中国互联网史上最大的并购整合。此次整合也意味着,UC优视通过此次融合实现了上市,UC优视员工将从中获得价值回报。此前,阿里已经收购了UC约66%的股份。2013年3月阿里花费31.3亿元对UC战略投资,2013年12月,再支付11亿元现金进一步增持,最近一次投资完成于今年4月。如今,阿里巴巴将收购UC优视剩余的三分之一股票,UC也将成为阿里巴巴全资子公司。(文/单明珠)上期回顾:更多精彩内容,请继续关注!
推荐阅读相关主题:
CSDN官方微信
扫描二维码,向CSDN吐槽
微信号:CSDNnews
相关热门文章一 什么是Ajax
Ajax:AsynchronousJavaScript And Xml——异步JavaScript和XML技术,还有一个比较通用的名称:页面局部刷新技术;是一种把多种技术融合到一起的JavaScript框架之一
二 Ajax主要用在哪里
Ajax的局部刷新是应用相对比较广泛的功能之一
比如常见搜索引擎的搜索建议(如在百度搜索页面中输入具体的字符后弹出匹配的关键词等等)、Google Maps(只刷新网页中地图所在的区域)、网页数据的验证(如账号等是否已经被注册或者使用)等等
三 怎么使用Ajax
(1)掌握Ajax技术,需要对一下内容有足够的了解
——标准web页面开发技术:HTML &#43;&CSS
——使用DOM模型解析HTML/XML的技术
——使用XMLHttpRequest对象(Ajax的核心,也是要讲解的重点)
——服务端编程技术:JSP/SERVLET
(2)实现一个简单Ajax程序的固定步骤
(2.1)创建XMLHttpRequest对象
*& *& *& *& *& *& *& *& *& *& *& *& *& *& *& *& *& *& *& *& *& *& *& *& *& *& *& *& *& *& *& *& *& *& *& *& *& *& *& *& *& *& *& *& *& *& *& *& *& *& *
// 1. 声明变量,获取一个XMLHttpRequest对象(固定写法)
&& &&& &&& &var xmlH
&& &&& &&& &try {
&& &&& &&& &&& &xmlHttp = new XMLHttpRequest();&& &&& &
&& &&& &&& &} catch (e) {
&& &&& &&& &&& &try {
&& &&& &&& &&& &&& &xmlHttp = new ActiveXObject(&Msxml2.XMLHTTP&);&& &&& &&& &&& &&& &
&& &&& &&& &&& &} catch (e) {
&& &&& &&& &&& &&& &try {
&& &&& &&& &&& &&& &&& &xmlHttp = new ActiveXObject(&Microsoft.XMLHTTP&);&& &&& &&& &&& &&& &&& &
&& &&& &&& &&& &&& &} catch (e) {
&& &&& &&& &&& &&& &&& &alert(&您的浏览器不支持AJAX,请更新浏览器版本&);
&& &&& &&& &&& &&& &}
&& &&& &&& &&& &}
&& &&& &&& &}
*& *& *& *& *& *& *& *& *& *& *& *& *& *& *& *& *& *& *& *& *& *& *& *& *& *& *& *& *& *& *& *& *& *& *& *& *& *& *& *& *& *& *& *& *& *& *& *& *& *& *
(2.2)创建处理服务器响应数据的代码
*& *& *& *& *& *& *& *& *& *& *& *& *& *& *& *& *& *& *& *& *& *& *& *& *& *& *& *& *& *& *& *& *& *& *& *& *& *& *& *& *& *& *& *& *& *& *& *& *& *& *
// 2. 处理服务器响应回来的数据(固定写法)
&& &&& &&& &xmlHttp.onreadystatechange = function () {
&&&&&&&&&&&&&&&&&& /*& *& *& *& *& *& *& *& *& *& *& *& *& *& *&&自主开发部分 *& *& *& *& *& *& *& *& *& *& *& *& *& *& **/& &&& &
& & & & & & & & & }
&& &&& &&&& };
*& *& *& *& *& *& *& *& *& *& *& *& *& *& *& *& *& *& *& *& *& *& *& *& *& *& *& *& *& *& *& *& *& *& *& *& *& *& *& *& *& *& *& *& *& *& *& *& *& *& *
(2.3)按照指定的方式打开和服务器之间的连接
*& *& *& *& *& *& *& *& *& *& *& *& *& *& *& *& *& *& *& *& *& *& *& *& *& *& *& *& *& *& *& *& *& *& *& *& *& *& *& *& *& *& *& *& *& *& *& *& *& *& *
// 3. 打开远程连接
&xmlHttp.open(&method&, &url&, async);
method:post/get——提交请求的方法
url——提交到服务器的url地址
async:true/false——是否异步提交
*& *& *& *& *& *& *& *& *& *& *& *& *& *& *& *& *& *& *& *& *& *& *& *& *& *& *& *& *& *& *& *& *& *& *& *& *& *& *& *& *& *& *& *& *& *& *& *& *& *& *
(2.4)发送请求
*& *& *& *& *& *& *& *& *& *& *& *& *& *& *& *& *& *& *& *& *& *& *& *& *& *& *& *& *& *& *& *& *& *& *& *& *& *& *& *& *& *& *& *& *& *& *& *& *& *& *
&xmlHttp.send(null);
*& *& *& *& *& *& *& *& *& *& *& *& *& *& *& *& *& *& *& *& *& *& *& *& *& *& *& *& *& *& *& *& *& *& *& *& *& *& *& *& *& *& *& *& *& *& *& *& *& *& *
四 Ajax提交请求的两种方式
(1)&GET方法提交异步请求
*& *& *& *& *& *& *& *& *& *& *& *& *& *& *& *& *& *& *& *& *& *& *& *& *& *& *& *& *& *& *& *& *& *& *& *& *& *& *& *& *& *& *& *& *& *& *& *& *& *& *
xmlHttp.open(&get&, &helloajax.action&, true);
*& *& *& *& *& *& *& *& *& *& *& *& *& *& *& *& *& *& *& *& *& *& *& *& *& *& *& *& *& *& *& *& *& *& *& *& *& *& *& *& *& *& *& *& *& *& *& *& *& *& *
示例:客户密码拾取器
a. servlet
~&& ~&& ~&& ~&& ~&& ~&& ~&& ~&& ~&& ~&& ~&& ~&& ~&& ~&& ~&& ~&& ~&& ~
package com.phome.
import java.io.IOE
import javax.servlet.ServletE
import javax.servlet.http.HttpS
import javax.servlet.http.HttpServletR
import javax.servlet.http.HttpServletR
public class AjaxServlet extends HttpServlet{
&& &@Override
&& &protected void doGet(HttpServletRequest req, HttpServletResponse resp)
&& &&& &&& &throws ServletException, IOException {
&& &&& &this.doPost(req, resp);
&& &@Override
&& &protected void doPost(HttpServletRequest req, HttpServletResponse resp)
&& &&& &&& &throws ServletException, IOException {
&& &&& &System.out.println(&服务器接受到了请求...&);
&& &&& &String password = req.getParameter(&password&);
&& &&& &System.out.println(&客户端输入的密码:& &#43; password);
~&& ~&& ~&& ~&& ~&& ~&& ~&& ~&& ~&& ~&& ~&& ~&& ~&& ~&& ~&& ~&& ~&& ~
b.&web.xml配置
~&& ~&& ~&& ~&& ~&& ~&& ~&& ~&& ~&& ~&& ~&& ~&& ~&& ~&& ~&& ~&& ~&& ~
&web-app xmlns:xsi=&http://www.w3.org/2001/XMLSchema-instance& xmlns=&/xml/ns/javaee& xsi:schemaLocation=&/xml/ns/javaee /xml/ns/javaee/web-app_3_0.xsd& id=&WebApp_ID& version=&3.0&&
& &display-name&ajax_0100&/display-name&
& &!-- 1. 第一个ajax程序:密码拾取器 --&
& &servlet&
& && &&servlet-name&ajaxservlet&/servlet-name&
& && &&servlet-class&com.phome.servlet.AjaxServlet&/servlet-class&
& &/servlet&
& &servlet-mapping&
& && &&servlet-name&ajaxservlet&/servlet-name&
& && &&url-pattern&/helloajax.action&/url-pattern&
& &/servlet-mapping&
& &welcome-file-list&
&&& &welcome-file&index.html&/welcome-file&
&&& &welcome-file&index.htm&/welcome-file&
&&& &welcome-file&index.jsp&/welcome-file&
&&& &welcome-file&default.html&/welcome-file&
&&& &welcome-file&default.htm&/welcome-file&
&&& &welcome-file&default.jsp&/welcome-file&
& &/welcome-file-list&
&/web-app&
~&& ~&& ~&& ~&& ~&& ~&& ~&& ~&& ~&& ~&& ~&& ~&& ~&& ~&& ~&& ~&& ~&& ~
c.&视图页面开发——index.jsp
~&& ~&& ~&& ~&& ~&& ~&& ~&& ~&& ~&& ~&& ~&& ~&& ~&& ~&& ~&& ~&& ~&& ~
&%@ page language=&java& import=&java.util.*& pageEncoding=&GB18030&%&
String path = request.getContextPath();
String basePath = request.getScheme()&#43;&://&&#43;request.getServerName()&#43;&:&&#43;request.getServerPort()&#43;path&#43;&/&;
&!DOCTYPE HTML PUBLIC &-//W3C//DTD HTML 4.01 Transitional//EN&&
&&& &base href=&&%=basePath%&&&
&&& &title&My JSP 'index.jsp' starting page&/title&
&& &&meta http-equiv=&pragma& content=&no-cache&&
&& &&meta http-equiv=&cache-control& content=&no-cache&&
&& &&meta http-equiv=&expires& content=&0&&&& &
&& &&meta http-equiv=&keywords& content=&keyword1,keyword2,keyword3&&
&& &&meta http-equiv=&description& content=&This is my page&&
&& &&link rel=&stylesheet& type=&text/css& href=&styles.css&&
&& &&script type=&text/javascript&&
&& &&& &function chkInput (value) {
&& &&& &&& &var xmlHttp = new XMLHttpR
&& &&& &&& &
&& &&& &&& &xmlHttp.open(&get&, &helloajax.action?password=& &#43; value, true);
&& &&& &&& &xmlHttp.send(null);
&& &&/script&
&&& &!--& baidu: &input type=&text& name=&text& onkeyup=&chkInput()& /&&br /& --&
&&& password : &input type=&password& name=&password& onblur=&chkInput(this.value)&/&&br /&
~&& ~&& ~&& ~&& ~&& ~&& ~&& ~&& ~&& ~&& ~&& ~&& ~&& ~&& ~&& ~&& ~&& ~
~&& ~&& ~&& ~&& ~&& ~&& ~&& ~&& ~&& ~&& ~&& ~&& ~&& ~&& ~&& ~&& ~&& ~
打开浏览器访问页面主页
在密码输入框中输入密码
服务器端会打印出用户输入的具体密码字符
~&& ~&& ~&& ~&& ~&& ~&& ~&& ~&& ~&& ~&& ~&& ~&& ~&& ~&& ~&& ~&& ~&& ~
(2)post方法体提交异步请求
将上例中视图页面中的发送请求部分修改为下面的post方式发送请求&#26684;式
*& *& *& *& *& *& *& *& *& *& *& *& *& *& *& *& *& *& *& *& *& *& *& *& *& *& *& *& *& *& *& *& *& *& *& *& *& *& *& *& *& *& *& *& *& *& *& *& *& *& *
// 4. 发送请求
&& &&& &&& &xmlHttp.setRequestHeader(&Content-Type& , &application/x-www-form-urlencoded&);
&& &&& &&& &xmlHttp.send(null);
*& *& *& *& *& *& *& *& *& *& *& *& *& *& *& *& *& *& *& *& *& *& *& *& *& *& *& *& *& *& *& *& *& *& *& *& *& *& *& *& *& *& *& *& *& *& *& *& *& *& *
五 Ajax参数传递
(1)get方法提交参数
get方法提交参数,只需要在XMLHttpRequest.open();方法中,将参数附加到Url地址的后面即可
如:xmlHttp.open(&get&, &helloajax.action?password=& &#43; value, true);
(2)post方法提交参数
post方法提交参数
a.设置请求头,告诉服务器参数包含在Post表单中提交
xmlHttp.setRequestHeader(&Content-Type& , &application/x-www-form-urlencoded&);
b.&在发送请求时附加参数传递
xmlHttp.setRequestHeader(&Content-Type& , &application/x-www-form-urlencoded&);
xmlHttp.send(&username=& &#43; value);
六 Ajax处理服务器响应数据的方法
Ajax可以处理服务器返回的数据,主要有以下几种
(1)普通文本数据
(2)XML数据
(3)JSON数据——现下最流行的Ajax数据传递&#26684;式,详细JSON教程后续发布
示例:模拟用户信息查看器——JSON数据传递
*& *& *& *& *& *& *& *& *& *& *& *& *& *& *& *& *& *& *& *& *& *& *& *& *& *& *& *& *& *& *& *& *& *& *& *& *& *& *& *& *& *& *& *& *& *& *& *& *& *& *
a. 控制器servlet开发
~& ~& ~& ~& ~& ~& ~& ~& ~& ~& ~& ~& ~& ~& ~& ~& ~& ~& ~& ~& ~& ~& ~& ~& ~& ~& ~& ~& ~& ~& ~& ~& ~& ~& ~& ~& ~& ~& ~& ~
package com.phome.
import java.io.IOE
import java.io.PrintW
import javax.servlet.ServletE
import javax.servlet.http.HttpS
import javax.servlet.http.HttpServletR
import javax.servlet.http.HttpServletR
import com.phome.model.A
import com.phome.model.U
public class AjaxServlet3 extends HttpServlet{
&& &@Override
&& &protected void doGet(HttpServletRequest req, HttpServletResponse resp)
&& &&& &&& &throws ServletException, IOException {
&& &&& &this.doPost(req, resp);
&& &@Override
&& &protected void doPost(HttpServletRequest req, HttpServletResponse resp)
&& &&& &&& &throws ServletException, IOException {
&& &&& &req.setCharacterEncoding(&gb18030&);
&& &&& &resp.setContentType(&text/charset=gb18030&);
&& &&& &System.out.println(&服务器接受到了请求...&);
&& &&& &String username = req.getParameter(&username&);
&& &&& &System.out.println(&客户端输入的账号:& &#43; username);
&& &&& &User user =
&& &&& &Address addr =
&& &&& &if (&admin&.equals(username)) {
&& &&& &&& &user = new User(&admin& , &admin& , 23 , &男& , addr);
&& &&& &} else if(&manager&.equals(username)) {
&& &&& &&& &user = new User(&manager& , &manager& , 33 , &女&);
&& &&& &PrintWriter out = resp.getWriter();// 获取到浏览器的输出流
&& &&& &//out.write(&{username:& &#43; user.getUsername() &#43; &,password:******,age:& &#43; user.getAge() &#43; &,gender:& &#43; user.getGender() &#43;&}&);
&& &&& &out.write(&{\&username\&:\&& &#43; user.getUsername() &#43; &\&,\&password\&:\&******\&,\&age\&:\&& &#43; user.getAge() &#43; &\&,\&gender\&:\&& &#43; user.getGender() &#43;&\&}&);
&& &&& &out.flush();
&& &&& &out.close();
~& ~& ~& ~& ~& ~& ~& ~& ~& ~& ~& ~& ~& ~& ~& ~& ~& ~& ~& ~& ~& ~& ~& ~& ~& ~& ~& ~& ~& ~& ~& ~& ~& ~& ~& ~& ~& ~& ~& ~
b. web.xml配置
~& ~& ~& ~& ~& ~& ~& ~& ~& ~& ~& ~& ~& ~& ~& ~& ~& ~& ~& ~& ~& ~& ~& ~& ~& ~& ~& ~& ~& ~& ~& ~& ~& ~& ~& ~& ~& ~& ~& ~
&?xml version=&1.0& encoding=&UTF-8&?&
&web-app xmlns:xsi=&http://www.w3.org/2001/XMLSchema-instance& xmlns=&/xml/ns/javaee& xsi:schemaLocation=&/xml/ns/javaee /xml/ns/javaee/web-app_3_0.xsd& id=&WebApp_ID& version=&3.0&&
& &display-name&ajax_0100&/display-name&
&!-- 使用json完成用户信息查看功能 --&
& &servlet&
& && &&servlet-name&ajaxservlet3&/servlet-name&
& && &&servlet-class&com.phome.servlet.AjaxServlet3&/servlet-class&
& &/servlet&
& &servlet-mapping&
& && &&servlet-name&ajaxservlet3&/servlet-name&
& && &&url-pattern&/helloajax3.action&/url-pattern&
& &/servlet-mapping&
& &welcome-file-list&
&&& &welcome-file&index.html&/welcome-file&
&&& &welcome-file&index.htm&/welcome-file&
&&& &welcome-file&index.jsp&/welcome-file&
&&& &welcome-file&default.html&/welcome-file&
&&& &welcome-file&default.htm&/welcome-file&
&&& &welcome-file&default.jsp&/welcome-file&
& &/welcome-file-list&
&/web-app&
~& ~& ~& ~& ~& ~& ~& ~& ~& ~& ~& ~& ~& ~& ~& ~& ~& ~& ~& ~& ~& ~& ~& ~& ~& ~& ~& ~& ~& ~& ~& ~& ~& ~& ~& ~& ~& ~& ~& ~
c.&视图开发
~& ~& ~& ~& ~& ~& ~& ~& ~& ~& ~& ~& ~& ~& ~& ~& ~& ~& ~& ~& ~& ~& ~& ~& ~& ~& ~& ~& ~& ~& ~& ~& ~& ~& ~& ~& ~& ~& ~& ~
&%@ page language=&java& import=&java.util.*& pageEncoding=&GB18030&%&
String path = request.getContextPath();
String basePath = request.getScheme()&#43;&://&&#43;request.getServerName()&#43;&:&&#43;request.getServerPort()&#43;path&#43;&/&;
&!DOCTYPE HTML PUBLIC &-//W3C//DTD HTML 4.01 Transitional//EN&&
&&& &base href=&&%=basePath%&&&
&&& &title&My JSP 'index.jsp' starting page&/title&
&& &&meta http-equiv=&pragma& content=&no-cache&&
&& &&meta http-equiv=&cache-control& content=&no-cache&&
&& &&meta http-equiv=&expires& content=&0&&&& &
&& &&meta http-equiv=&keywords& content=&keyword1,keyword2,keyword3&&
&& &&meta http-equiv=&description& content=&This is my page&&
&& &&link rel=&stylesheet& type=&text/css& href=&styles.css&&
&& &&script type=&text/javascript&&
&& &&& &function chkInput (value) {
&& &&& &&& &// 1. 声明变量,获取一个XMLHttpRequest对象(固定写法)
&& &&& &&& &var xmlH
&& &&& &&& &try {
&& &&& &&& &&& &xmlHttp = new XMLHttpRequest();&& &&& &
&& &&& &&& &} catch (e) {
&& &&& &&& &&& &try {
&& &&& &&& &&& &&& &xmlHttp = new ActiveXObject(&Msxml2.XMLHTTP&);&& &&& &&& &&& &&& &
&& &&& &&& &&& &} catch (e) {
&& &&& &&& &&& &&& &try {
&& &&& &&& &&& &&& &&& &xmlHttp = new ActiveXObject(&Microsoft.XMLHTTP&);&& &&& &&& &&& &&& &&& &
&& &&& &&& &&& &&& &} catch (e) {
&& &&& &&& &&& &&& &&& &alert(&您的浏览器不支持AJAX,请更新浏览器版本&);
&& &&& &&& &&& &&& &}
&& &&& &&& &&& &}
&& &&& &&& &}
&& &&& &&& &
&& &&& &&& &// 2. 处理服务器响应回来的数据(固定写法)
&& &&& &&& &xmlHttp.onreadystatechange = function () {
&& &&& &&& &&& &// readyState状态为4时,表示请求已经成功响应
&& &&& &&& &&& &if(xmlHttp.readyState == 4 && xmlHttp.status == 200) {
&& &&& &&& &&& &&& &// 获取服务器端响应的数据
&& &&& &&& &&& &&& &var result = xmlHttp.responseT
&& &&& &&& &&& &&& &//alert(typeof(xmlHttp.responseText));
&& &&& &&& &&& &&& &//$(&username&).innerText = xmlHttp.responseT
&& &&& &&& &&& &&& &var userinfo = eval(&(&&#43;result&#43;&)&);
&& &&& &&& &&& &&& &//alert(userinfo);
&& &&& &&& &&& &&& &
&& &&& &&& &&& &&& &$(&username&).innerText = userinfo.
&& &&& &&& &&& &&& &$(&password&).innerText = userinfo.
&& &&& &&& &&& &&& &$(&age&).innerText = userinfo.
&& &&& &&& &&& &&& &$(&gender&).innerText = userinfo.
&& &&& &&& &&& &}
&& &&& &&& &};
&& &&& &&& &
&& &&& &&& &// 3. 打开远程连接
&& &&& &&& &xmlHttp.open(&post&, &helloajax3.action&, true);
&& &&& &&& &// 4. 发送请求
&& &&& &&& &xmlHttp.setRequestHeader(&Content-Type& , &application/x-www-form-urlencoded&);
&& &&& &&& &xmlHttp.send(&username=& &#43; value);
&& &&& &function $(elementid) {
&& &&& &&& &return document.getElementById(elementid);
&& &&/script&
&&& &!--& baidu: &input type=&text& name=&text& onkeyup=&chkInput()& /&&br /& --&
&&& 请输入要查询的账号 : &input type=&text& name=&username& onblur=&chkInput(this.value)&/&&br /&
&账号信息:&br /&
账号: &span id=&username&&&/span&
&密码:&span id=&password&&&/span&
&年龄:&span id=&age&&&/span&
&性别:&span id=&gender&&&/span&
~& ~& ~& ~& ~& ~& ~& ~& ~& ~& ~& ~& ~& ~& ~& ~& ~& ~& ~& ~& ~& ~& ~& ~& ~& ~& ~& ~& ~& ~& ~& ~& ~& ~& ~& ~& ~& ~& ~& ~
打开浏览器,出现提示输入要查询的账号的文本输入框
输入指定的用户之后,从服务器返回具体的用户数据并打印到当前页面上
*& *& *& *& *& *& *& *& *& *& *& *& *& *& *& *& *& *& *& *& *& *& *& *& *& *& *& *& *& *& *& *& *& *& *& *& *& *& *& *& *& *& *& *& *& *& *& *& *& *& *
附注:XMLHttpRequest的几种状态
onreadystatechange
每次状态改变所触发事件的事件处理程序
responseText
从服务器进程返回数据的字符串形式
responseXML
从服务器进程返回的DOM兼容的文档数据对象
从服务器返回的数字代码
常见:404(资源未查询到)<span style="color:#0(资源正确接收)<span style="color:#0(服务器错误)
status Text
伴随状态码的字符串信息
readyState
对象状态&#20540;
<span style="color:#—未初始化 1—正在加载& 2—加载完毕
3—交互 4—完成
待续——JSON
本文已收录于以下专栏:
相关文章推荐
Overriew: onReadyStateChange被回调函数赋值,则能实现异步调用,回调函数直接操作DOM,则能实现局部刷新。那么XMLHttpRequest的onReadyStateChang...
feedback.jsp:
String path = request.getContextPath();
String basePath = request.getScheme()...
第一个jsp页面加载初始资源
第二个jsp页面处理分页
分页展示简历列表
第一个jsp页面加载初始资源,并且页面一加载请求服务端加载第一页数据
&%@ page contentType=&text/...
需求描述:
当页面有一部分是不变的或整个页面的图片很多时,可以考虑使用局部刷新,以提高整体的下载速度与用户体验。
1,iframe实现局部刷新的方法一
复制代码代码示例:
今天用了纯js代码写ajax和后台交互,写好了最开始没得问题,但是前端接收后台数据的时候遇到问题了。一直获取不到值,原来是我理解错了,获取后台的相关操作必须写到那个状态变化监听器里面。也就是需要写到o...
在Web开发中,前台和后台的数据交互是十分频繁的, 而JQuery对Ajax进行了封装,使得前台向后台发送数据变得十分简单。Ajax如何向后台传递数据
他的最新文章
讲师:姜飞俊
您举报文章:
举报原因:
原文地址:
原因补充:
(最多只允许输入30个字)}

我要回帖

更多关于 java web分页完整代码 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信