扫二维码与项目经理沟通
我们在微信上24小时期待你的声音
解答本文疑问/技术咨询/运营咨询/技术建议/互联网交流
使用esclipse写。
禹会ssl适用于网站、小程序/APP、API接口等需要进行数据传输应用场景,ssl证书未来市场广阔!成为创新互联公司的ssl证书销售渠道,可以享受市场价格4-6折优惠!如果有意向欢迎电话联系或者加微信:028-86922220(备注:SSL证书合作)期待与您的合作!
在esclip中写代码,首先创建竞选表所需要的姓名,次数等属性,由于投票的同事众多,需要在代码中增加循坏,如果确认循环次数的情况下使用for循环,不然使用while循环,最后使用system打印语句打印遍历出来的代码。
理解Java编程思想:万物都是对象。
写Java代码最重要是厘清做一件事成员、责任应该放在哪一边
另外如果代码写不好,可以多读一些经典代码,从小模块开始,看看别人怎么设计的。
慢慢开始模仿,
另外就是有机会的话可以重写一下自己的代码,
java后端的⼏种实现⽅式
java后端的⼏种实现⽅式
最近没事在做⼀些⼩题⽬,遇到需要提供http restful接⼝,通过接⼝操作zookeeper实现增删改查。虽然之前看过java后端的内容,但是基本忘的差不多了,这次梳理了⼀下,都是⼊门的东西。⾃⼰总结⽤,如有错误还请多指正。
⾸先说这次了解到的主要是三种⽅式:
第⼀种:servelet + jsp ⼿动配置项较多,⾮框架
第⼆种:Spring框架 ⽬前应该是后端主流实现⽅式吧
第三种:Spring boot 在Spring框架的基础上进⼀步简化了实现⽅式,通过⼏个注解就可以实现⾃动配置。
⼀、 servelet + jsp⽅式
开始的想法,由于只是简单的需求,所以没想引⼊Spring框架。这个应该是依赖最少的⽅式了。
以idea为例,说⼀下搭建过程:
参考:
⾸先项⽬应该是web项⽬,这个在创建的时候可以选择。如果⼀开始是maven项⽬,需要添加框架⽀持,添加完成后会⾃动⽣成web⽂件夹和web.xml配置⽂件。如图,在项⽬配置中添加就可以
添加完成后在artifacts选项卡中添加打包配置,点击后会出现模块选择,选中确定就可以了。
成功以后如下,点击ok关闭窗⼝就可以了,不需要其他配置。
然后开始编写servelet代码,继承HttpServlet类,重写doGet⽅法。只实现简单的打印⽂字到⽹页的功能,不需要编写jsp⽂件,只要servelet就可以实现。
@Override
public void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
response.setContentType("text/html; charset=utf-8");
response.setCharacterEncoding("UTF-8");
OutputStream out = response.getOutputStream();
out.write("hello".getBytes(StandardCharsets.UTF_8));
out.flush();
}
配置web.xml,按⾃⼰的servelet类名⾃⾏调整
servlet!--servlet类路径配置--
servlet-nameUtilsServlet/servlet-name
servlet-classcom.baidu.servlet.UtilsServlet/servlet-class /servlet
servlet-mapping!--servlet类映射配置--
servlet-nameUtilsServlet/servlet-name
url-pattern/UtilsServlet/url-pattern ##⽹页访问地址
/servlet-mapping
接下来配置tomcat应⽤:
配置好以后就可以运⾏了,浏览器地址输⼊访问地址,然后在后⾯加上/UtilsServlet (按项⽬调整,web.xml⾃⼰配置的servelet类访问路径),就可以看到 输出的⽂字了。当然这⾥可以再doGet⽅法⾥实现各种逻辑,返回jsp页⾯ ,返回json结果等,⼀般项⽬是再加上⼀个service层(package),将复杂的业务逻辑放在service中。
⼆、Spring框架(未实现,只是简单试了下搭建)
在之前的基础上添加Spring的框架⽀持。
两种⽅式:
1、还是在项⽬配置中添加
2、右键project – add framework support,这⾥虽然可以选择单个的⽀持,但是好像选了Spring MVC后就会⾃动包含所有组件(只选择Spring MVC,下次再添加spring的框架⽀持时,发现已经找不到了,说明应该默认所有都已添加),右边选择依赖位置,如果没有下载好的jar包,可以选择download,会在项⽬下⽣成lib⽂件夹,然后下载需要的jar包。也可以在maven添加依赖,这样就可以做到⽅便管理了。
三、Spring boot
最简单的⽅式。不⽤添加任何框架⽀持,对,Spring的也不需要,直接在pom⽂件中加上依赖就⾏,真⾹。
!-- 相关jar包 --
dependencies
!-- Springboot核⼼jar包 --
dependency
groupIdorg.springframework.boot/groupId
artifactIdspring-boot-starter/artifactId
/dependency
!-- web开发包:包含Tomcat和Springmvc --
dependency
groupIdorg.springframework.boot/groupId
artifactIdspring-boot-starter-web/artifactId
/dependency
/dependencies
然后新建两个类,添加⼏个注解就可以打印出来hello world。
可以参考这篇博⽂
注意项⽬结构,app类要在controller的上层(否则报错:This application has no explicit mapping for /error, so you are seeing this as a fallback),同时需要新建⼀个package,不能将app类直接放在默认java⽂件夹下,不然代码会标红,原因是注解类型错误,当然可以改⽤其他注解来解决,我这⾥就不贴了。
¥
5.9
百度文库VIP限时优惠现在开通,立享6亿+VIP内容
立即获取
java后端的几种实现方式
java后端的⼏种实现⽅式
java后端的⼏种实现⽅式
最近没事在做⼀些⼩题⽬,遇到需要提供http restful接⼝,通过接⼝操作zookeeper实现增删改查。虽然之前看过java后端的内容,但是基本忘的差不多了,这次梳理了⼀下,都是⼊门的东西。⾃⼰总结⽤,如有错误还请多指正。
⾸先说这次了解到的主要是三种⽅式:
第⼀种:servelet + jsp ⼿动配置项较多,⾮框架
第 1 页
第⼆种:Spring框架 ⽬前应该是后端主流实现⽅式吧
第三种:Spring boot 在Spring框架的基础上进⼀步简化了实现⽅式,通过⼏个注解就可以实现⾃动配置。
⼀、 servelet + jsp⽅式
开始的想法,由于只是简单的需求,所以没想引⼊Spring框架。这个应该是依赖最少的⽅式了。
以idea为例,说⼀下搭建过程:
参考:
新建java第一种方法:
1。首先右击鼠标,新建一个文本文档。
2。更改文本文档的后缀名为
.java
。注意文件名必须和类名相同。
如果你的电脑没有显示后缀名的话需要对电脑进行一定的设置。
3。打开计算机——组织——文件夹选项——查看——将隐藏文件夹选项取消勾选即可。
建议将这个选项取消勾选,有很多的恶意程序会侵入我们的电脑,取消勾选可以很好的查看病毒等文件的类型。
4。右击建好的文档,选择编辑即可进行java的编写。
在编写的时候我们有一定的格式,java语言的格式是为了我们日后更改程序方便而规定的,我们一定要遵循这种格式编写。
第二种方法:
1直接新建一个记事本文档,然后选择保存。
注意保存时额位置,不要等到保存完却找不到文件到哪了。
2在选择保存的窗口中输入后缀“.java”,然后保存即可。注意文件名必须和类名相同。
3同样右击文件,选择编辑即可在文件中进行编辑了。
前两个大括号之间回车,第二对大括号有一个间隔,直接按TAb键即可。
测试运行java程序:
打开运行命令,也可以直接在开菜单中输入CMD调用命令窗口。
你的文件保存在哪里就将你的文件目录输入到命令提示符窗口中,例如我的是D盘根目录,所以我输入“d:”。
编译java文件,生成class文件:
在命令提示符中输入“javac
文件名.java”,我的文件名为A,所以输入javac
A.java然后回车,等待编译。
运行文件:
继续输入“java
文件名”然后回车就可以运行我们写好的文件了。
一、获取code
将code作为参数传递过来
//如果有code,说明是微信小程序,根据code获取openId
//classify用于标识是哪个小程序
if (!CheckUtil.checkNulls( keUser.getCode(),keUser.getClassify())){
//
String openid = OpenIdUtil.oauth2GetOpenid(keUser.getCode(),keUser.getClassify());
printParamsLog(openid, logger);
keUser.setUserId(openid);
}1234567812345678
二、工具类
package com.util;
import net.sf.json.JSONObject;
import org.apache.http.client.HttpClient;
import org.apache.http.client.ResponseHandler;
import org.apache.http.client.methods.HttpGet;
import org.apache.http.impl.client.BasicResponseHandler;
import org.apache.http.impl.client.DefaultHttpClient;
import java.util.HashMap;
import java.util.Map;
/**
* @author xsx
*/
public class OpenIdUtil {
public static String oauth2GetOpenid(String code,String classify) {
String appid="";
String appsecret="";
switch (classify){
case "1":
//自己的配置appid
appid = "**********";
//自己的配置APPSECRET;
appsecret = "**********";
break;
case "2":
appid = "**********";
appsecret = "************";
break;
case "3":
appid = "**********";
appsecret = "************";
break;
case "4":
appid = "**********";
appsecret = "************";
break;
case "5":
appid = "**********";
appsecret = "************";
}
//授权(必填)
String grant_type = "authorization_code";
//URL
String requestUrl = "";
//请求参数
String params = "appid=" + appid + "secret=" + appsecret + "js_code=" + code + "grant_type=" + grant_type;
//发送请求
String data = HttpUtil.get(requestUrl, params);
//解析相应内容(转换成json对象)
JSONObject json = JSONObject.fromObject(data);
//用户的唯一标识(openid)
String Openid =String.valueOf(json.get("openid"));
//System.out.println(Openid);
return Openid;
}
}
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960
三、发送请求的工具类
package com.util;
import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.net.URL;
import java.net.URLConnection;
import java.util.List;
import java.util.Map;
/**
* @author xsx
*/
public class HttpUtil {
/**
* 向指定URL发送GET方法的请求
*
* @param url
* 发送请求的URL
* @param param
* 请求参数,请求参数应该是 name1=value1name2=value2 的形式。
* @return String 所代表远程资源的响应结果
*/
public static String get(String url,String param){
String result = "";
BufferedReader in = null;
try {
String urlNameString = url + "?" + param;
//System.out.println(urlNameString);
URL realUrl = new URL(urlNameString);
// 打开和URL之间的连接
URLConnection connection = realUrl.openConnection();
// 设置通用的请求属性
connection.setRequestProperty("accept", "*/*");
connection.setRequestProperty("connection", "Keep-Alive");
connection.setRequestProperty("user-agent",
"Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1;SV1)");
// 建立实际的连接
connection.connect();
// 获取所有响应头字段
MapString, ListString map = connection.getHeaderFields();
// 遍历所有的响应头字段
/*for (String key : map.keySet()) {
System.out.println(key + "---" + map.get(key));
}*/
// 定义 BufferedReader输入流来读取URL的响应
in = new BufferedReader(new InputStreamReader(
connection.getInputStream()));
String line;
while ((line = in.readLine()) != null) {
result += line;
}
} catch (Exception e) {
System.out.println("发送GET请求出现异常!" + e);
e.printStackTrace();
}
// 使用finally块来关闭输入流
finally {
try {
if (in != null) {
in.close();
}
} catch (Exception e2) {
e2.printStackTrace();
}
}
return result;
}
}
你说的是一个完整的BS请求--响应模式,很多种方式都可以实现,
最简单的方法:写一个 form 表单,然后配置servlet ,提交数据到servlet,在servlet中实现你的逻辑如你保存数据库的操作,然后由servlet 转发到jsp 页面进行网页响应就可以了。ITjob的朋友跟我分享过的,发给你了不用谢~
我们在微信上24小时期待你的声音
解答本文疑问/技术咨询/运营咨询/技术建议/互联网交流