java谷歌谷歌浏览器json插件件怎么用

javaweb-jsp开发模式+JSON插件 - 抓根宝 - 博客园
& 阅读这一篇文章,你至少需要掌握的技术有:servlet,jsp,javaban(java基础);
&&所需要的jar包:
1,封装表单的jar包:commons-beanutils-1.8.3.
&&&&&&&&&&&&&&&&&&&&&commons-logging-1.1.1.
2,jdbc数据库的jar包(这里用的mysql数据库):mysql-connector-java-5.0.8-bin.
3,jstl标签库的jst包:jstl.
& &Standard.
4,json的jar包:
&commons-collections-3.2.1.
&commons-lang-2.5.
&ezmorph-1.0.6.
&&&&&&&&&&&&&&&&&json-lib-2.4-jdk15.
(下面这两个jar包前面已经加载过,不需要重复加载,额外写一遍是因为有可能单独使用json的时候需要用到,故此在这里备注一下)
&&&&&&commons-logging-1.1.1.
&&&&&&&&&&commons-beanutils-1.8.3.
&&本文主要对jsp的开发模式,mvc模式进行学习
1 ,Jsp的开发模式;
&&1,1 主要开发模式:
1.1.1,模型一
使用的技术:jsp+javaBean
这种技术有一个很明显的缺点,jsp虽然能很方便的向页面输出内容,但是当我在一个jsp页面中嵌入了大量的java代码时候,页面结构非常混乱,java代码和html代码相互交替,在后期维护的时候十分麻烦(哭);
1.1.2模型二(主要用这个)
&&&&&使用的技术:jsp+servlet+javaBean
&主要特点:分工合作,负责自己的功能范围,
&Jsp:用来显示数据;
&Servlet:控制中心,管理操作,在javaBean和jsp中建立联系;
&javaBean:封装数据,处理数据;
2, 使用模型二模拟登陆操作(就不写代码了,代码简单,好理解,逻辑步骤明确即可);
2.1 实现步骤
&&&①创建一个jsp登陆页面,提交信息到控制中心servlet页面;
&&&&&&&②创建控制中心servlet调用业务逻辑层,实现登陆功能的判断;
& &&&③创建Service实现功能(这里先不用持久层,直接在Service中处理结果);
&&&&&&&④控制中心从业务逻辑层获取获取结果,反馈信息给登陆页面(失败),或其它页面;
mvc开发模式(这个模式思想很多地方都有用到,不要局限与web之中);
&&&&&&&M:模型;
&&&&&&&V:视图;
&&&C:控制器;
特点:使用控制器,控制模型与视图之间的关系;
3.2 在javaweb开发中的具体分工;
3.1.1 M:使用javaBean技术,处理数据;
3.1.2 V:使用jsp技术,显示数据;
3.1.3 C:使用servlet技术,控制管理功能;
javaee的三层结构;
&&4.1 web 层 (jsp,servlet);
&&4.2 商业逻辑层(业务逻辑层);
&&4.3 持久化层(jdbc 数据库操作);
&&4.4 dao模式:用在持久化层的模式,专注于对数据操作的模式,数据封装成对象;
&&&&&注意事项:①第一步,创建一个接口,定义要使用的功能(制定对外的规则);
&&&&&&&&&&&&&&②第二步,创建一个类,实现接口的所有方法(之后可以通过该类实现功能);
&&③第三步:参数用对象进行封装(方便传输);
//dao模式使用的参数传递,全部是用的封装过的对象传递
5, mvc+dao模式的练习: 实现登陆功能的操作;
&&5.1 实现步骤(主要难点在于参数如何传递,步骤如何实现):
&①创建一个jsp页面(V),from表单提交参数到servlet(C)中;
&②创建一个servlet(C)来获取数据请求,并进行封装调用service(M)中的方法实现功能;
&③创建一个servlet(M)来实现功能,调用dao模式中的方法;
&④创建dao模式相关接口和类,与数据库挂接;
&⑤servlet(M)返回结果给servlet(C),servlet(C)根据结果把信息反馈给jsp页面(V);
6,mvc+dao 模式的练习:实现注册功能的步骤:
&&6.1实现步骤:
①创建一个注册页面(V),表单数据提交到servlet(C)中
②创建一个servlet(C)来获取请求数据,并封装, 然后调用service(M)的方法实现功能
③创建一个servlet(M)来实现功能,调用 dao模式中的方法
④在dao模式的接口和实现类中创建方法,实现效果
⑤反馈结果,显示在jsp页面上(v);
6.2功能完善:ID值唯一
①创建表的时候设定id为主键并且自动增长:id int primary key atuo_increment,
②使用uuid类随机生成id
//生成一个随机的唯一的id值
String id = UUID.randomUUID().toString();
id = id.replace("-", "");
6.3 其它练习:增加,删除(挺简单的,就不一一累赘了,重点在于掌握mvc+dao这一种开发模式,同时对之前的知识点进行复习);
7 JSON插件的使用(好东西,可以把集合或者对象转换成JSON,算是间接的与js搭建了桥梁)
JSON是一个轻量级的数据储存格式,方便使用(在安卓开发中用的很多)
需要的jar包在本文开头已经提到了,就不再这里重复说明了
对象转JSON
JSONObject jsonobject =JSONObject.fromObject(对象);
集合转JSON
JSONArray jsonarray=JSONObjectfromArray(集合);
最后贴一下 mvc+dao模式代码,写的比较简单,见笑了.
控制中心(C)
package com.zzx.
import java.io.IOE
import java.lang.reflect.InvocationTargetE
import java.util.M
import javax.servlet.ServletE
import javax.servlet.http.HttpS
import javax.servlet.http.HttpServletR
import javax.servlet.http.HttpServletR
import javax.swing.text.StyledEditorKit.BoldA
import mons.beanutils.BeanU
import com.zzx.bean.P
import com.zzx.service.PlayerS
public class Control extends HttpServlet {
//这里是登陆控制中心
public void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
//0,考虑到用户名会有中文的可能
request.setCharacterEncoding("utf-8");
//1,封装数据
Player p =new Player();
Map map = request.getParameterMap();
BeanUtils.populate(p, map);
} catch (Exception e) {
e.printStackTrace();
//2,调用商业逻辑层实现效果
boolean flag =PlayerService.Login(p);
response.getWriter().write("Login sucess");
request.setAttribute("msg", "用户名或密码错误");
request.getRequestDispatcher("/Login.jsp").forward(request, response);
public void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
doGet(request, response);
下面是 业务逻辑层
package com.zzx.
import java.util.L
import com.zzx.bean.P
import com.zzx.dao.SQLC
import com.zzx.dao.SQLControlIn;
public class PlayerService {
//这里是业务综合处理处
//1登陆功能
public static boolean Login(Player p) {
//调用 sql数据操作
SQLControl sc =new SQLControlIn();
boolean flag = sc.Login(p);
return true;
return false;
//注册操作
public static boolean reg(Player p) {
//调用 Dao模式下方法创建
SQLControl sc =new SQLControlIn();
boolean flag= sc.reg(p);
return true;
return false;
//判断姓名是否重复
public static boolean OnlyName(Player p) {
SQLControl sc =new SQLControlIn();
boolean flag=sc.OnlyName(p);
return true;
return false;
public static List&Player& AllPlayer() {
SQLControl sc =new SQLControlIn();
List&Player&list =sc.AllPlayer();
下面是持久层
package com.zzx.
import java.util.L
import com.zzx.bean.P
public interface SQLControl {
//这里是对外提供的数据库控制中心
//登录操作
public boolean Login(Player p);
//注册操作
public boolean reg(Player p);
public boolean OnlyName(Player p);
public List&Player& AllPlayer();
package com.zzx.
import java.sql.C
import java.sql.PreparedS
import java.sql.ResultS
import java.util.LinkedL
import java.util.L
import com.zzx.bean.P
import com.zzx.utils.JdbcT
public class SQLControlIn implements SQLControl{
private PreparedS
private ResultS
//1,这里是登陆操作
public boolean Login(Player p) {
String username=p.getUsername();
String password=p.getPassword();
//1,获取链接
conn = JdbcTools.loadDriver();
//2,创建sql语句
String sql ="select * from player where username=? and password=?";
//3,获取预编译对象并设置参数
ps = conn.prepareStatement(sql);
ps.setString(1, username);
ps.setString(2, password);
//4,获取执行结果
rs = ps.executeQuery();
if(rs.next()){
return true;
return false;
}catch (Exception e) {
e.printStackTrace();
JdbcTools.clearAll(conn, ps, rs);
return false;
//注册功能
public boolean reg(Player p) {
conn = JdbcTools.loadDriver();
//创建sql语句
String sql = "insert into player values(?,?,?,?)";
//获取预编译对象
ps = conn.prepareStatement(sql);
//设置参数
String id = p.getId();
String username = p.getUsername();
String password = p.getPassword();
String addr = p.getAddr();
ps.setString(1, id);
ps.setString(2, username);
ps.setString(3, password);
ps.setString(4, addr);
ps.executeUpdate();
//返回结果
return true;
}catch (Exception e) {
e.printStackTrace();
JdbcTools.clearAll(conn, ps, rs);
return false;
//判断名字是否唯一
public boolean OnlyName(Player p) {
String username=p.getUsername();
//1,获取链接
conn = JdbcTools.loadDriver();
//2,创建sql语句
String sql ="select * from player where username=?";
//3,获取预编译对象并设置参数
ps = conn.prepareStatement(sql);
ps.setString(1, username);
//4,获取执行结果
rs = ps.executeQuery();
if(rs.next()){
return true;
return false;
}catch (Exception e) {
e.printStackTrace();
JdbcTools.clearAll(conn, ps, rs);
return false;
//获取所有用户
public List&Player& AllPlayer() {
List&Player& list =new LinkedList&Player&();
//1,获取链接
conn = JdbcTools.loadDriver();
//2,创建sql语句
String sql ="select * from player";
//3,获取预编译对象并设置参数
ps = conn.prepareStatement(sql);
//4,获取执行结果
rs = ps.executeQuery();
while(rs.next()){
//创建对象,封装数据
p=new Player();
String id =rs.getString("id");
String username = rs.getString("username");
String password = rs.getString("password");
String addr = rs.getString("addr");
p.setId(id);
p.setUsername(username);
p.setPassword(password);
p.setAddr(addr);
//添加到集合中去
list.add(p);
}catch (Exception e) {
e.printStackTrace();
JdbcTools.clearAll(conn, ps, rs);
return null;
下面是JDBC工具类(手头上只有MySQL就用的MySQL了)
package com.zzx.
import java.sql.C
import java.sql.DriverM
import java.sql.ResultS
import java.sql.SQLE
import java.sql.S
import java.util.ResourceB
//这里是操作数据库的工具类
* 工具类功能:1,加载驱动,获取链接
2,释放资源
public class JdbcTools {
//定义参数获取配置文件中的信息
private static String driverN
private static S
private static S
private static S
driverName=ResourceBundle.getBundle("config").getString("driverName");
username=ResourceBundle.getBundle("config").getString("username");
password=ResourceBundle.getBundle("config").getString("password");
url=ResourceBundle.getBundle("config").getString("url");
//功能1,加载驱动,获取链接
public static Connection loadDriver(){
//1,通过反射获取字节码文件加载驱动
Class.forName(driverName);
Connection conn = DriverManager.getConnection(url,username,password);
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
return null;
//功能2,释放资源
public static void clearAll(Connection conn,Statement state,ResultSet rs){
if(rs!=null){
rs.close();
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
if(state!=null){
state.close();
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
state=null;
if(conn!=null){
conn.close();
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
conn=null;
下面是V web页面
&%@ page language="java" contentType="text/ charset=UTF-8"
pageEncoding="UTF-8"%&
&!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"&
&meta http-equiv="Content-Type" content="text/ charset=UTF-8"&
&title&Insert title here&/title&
&h1&请输入用户名跟密码登陆&/h1&
&h2&&font color="red"&${msg }&/font&&/h2&
&form action="${pageContext.request.contextPath }/servlet/Control" method="post"&
用户名:&input type="text" name="username"/&&br/&
密码:&input type="password" name="password"/&&br/&
&input type="submit" value="登陆"/&
&a href="${pageContext.request.contextPath }/servlet/ShowAll"&点我显示所有用户&/a&chrome jsonview 插件安装后不起作用 - 博客频道 - CSDN.NET
不积跬步无以至千里
json没有格式化
解决方法:
应该是chrome插件冲突导致,我的是因为百度翻译插件,关闭了jsonview就可以正常使用。
百度翻译插件关闭后,JSONView正常工作
排名:千里之外
(16)(1)(1)(1)(2)(1)(4)(9)(4)(9)(1)(4)android(23)
尊重原创,转载请注明出处:
[android插件篇]如何快速通过json构建javabean对象(GsonFormat)
推荐一个非常好用的AS插件GsonFormat。(当然,你也可以通过直接生成javabean对象,不是很喜欢,因为没有GsonFormat好用)
1、什么是GsonFormat
就是直接将json数据格式转换为javabean对象的as插件。
2、 安装步骤
settings–&Plugins—&输入GsonFormat—&Browse—&Install—&重启as即可
来个图看看:
3、怎么用GsonFormat
1)、比如你请求接口之后,返回的json数据是:
"username":"hdl",
"pwd":"L23LK4J3LJLKJL436LKJKL7LJLGKK4"
2)、先新建一个与json数据对应类,这个类名随意,在类中使用快捷键alt+Insert(右键–&Generate也可以)会弹出一个对话框,第一个就是GsonFormat插件,打开之后让你输入Json数据,点击确定—&确定即可自动生成。最后实现Serializable 接口即可(为了能更好地测试数据,你最后重写toString方法)。再来个图
3)、这样你就可以得到框架中setJavaBean()中的JavaBean了。你只需要传url,javabean就可以在回调方法里面得到想要的结果,是不是很简单?。
有人可能会说这是简单的一个javabean对象,复杂的json怎么搞?带json数组的又咋搞。
那我可以负责的告诉你,方法一样的。只要你的json格式正确就能生成对应的javabean对象。来看一个复杂的json。(豆瓣Top250的电影,属性几十个呢)
下面是请求豆瓣排名第一的电影(只是一条哦):
是不是很长很长,用gsonformat管理多长照样搞定。复制json—&粘贴—&确定—&实现Serializable接口,四步搞定。
温馨提示:里面的属性名千万不要改哦,必须要跟json数据生成的保持一致。要获取list数据,通过类似于new javabean().getData()的方法就可以得到了。
访问我的博客主页了解更多知识:
访问我的github主页了解更多开源框架:
&&相关文章推荐
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
访问:133604次
积分:1599
积分:1599
排名:千里之外
原创:35篇
评论:171条
我的开源项目:
1、网络请求框架MyHttputils:
2、富文本编辑器MRichEditor:
3、日志代码跟踪器ELog:
4、基于NIO的UDP发送器/接收器UDPSender:
5、基于ZXing的二维码生成、扫描器LibZXing:
欢迎star,更希望你的fork

我要回帖

更多关于 谷歌jsonview插件下载 的文章

 

随机推荐