導航:首頁 > 編程語言 > java請求

java請求

發布時間:2022-02-05 19:52:46

⑴ 請求用java回答。

1、程序運行效果如圖

效果圖

2、代碼內置了三個人,人數可以自己修改,內容也可以自己添加修改。

CelebrityIntroction.java

import java.util.Scanner;

/**
* @author bufei
* @datetime 2020年8月4日09:30:40
* @describe 名人介紹,知道題目
*/
public class CelebrityIntroction {

public static void main(String[] args) {
boolean flag = true;
People[] ps = new People[3];
ps[0] = new People();
ps[0].setName("諸葛亮");
ps[0].setIntroction("諸葛亮(181年—234年10月8日 [1] ),字孔明,號卧龍,琅琊陽都(今山東沂南)人 [2] ,三國時期蜀漢丞相,傑出的政治家、軍事家、文學家、書法家、發明家。 " +
"早年隨叔父諸葛玄到荊州,諸葛玄死後,諸葛亮就在隆中隱居。 [3-6] 後劉備三顧茅廬請出諸葛亮,聯合東吳孫權於赤壁之戰大敗曹軍。形成三國鼎足之勢,又奪占荊州。建安十六年(211年),攻取益州。 [7] 繼又擊敗曹軍,奪得漢中。蜀章武元年(221年),劉備在成都建立蜀漢政權,諸葛亮被任命為丞相,主持朝政。後主劉禪繼位,諸葛亮被封為武鄉侯,領益州牧。勤勉謹慎,大小政事必親自處理,賞罰嚴明;與東吳聯盟,改善和西南各族的關系;實行屯田政策,加強戰備。前後五次北伐中原,多以糧盡無功。終因積勞成疾,於蜀建興十二年(234年)病逝於五丈原(今陝西寶雞岐山境內),享年54歲。劉禪追封其為忠武侯,後世常以武侯尊稱諸葛亮。東晉政權因其軍事才能特追封他為武興王 [8] 。");
ps[1] = new People();
ps[1].setName("作者");
ps[1].setIntroction("作者來自網路知道,網路一下,你就知道。");
ps[2] = new People();
ps[2].setName("王羲之");
ps[2].setIntroction("王羲之(303—361,一說321—379),字逸少,東晉時期書法家,有「書聖」之稱。琅琊臨沂(今山東臨沂)人,南渡後居會稽山陰(今浙江紹興),晚年隱居剡縣金庭。 " +
"歷任秘書郞、寧遠將軍、江州刺史,後為會稽內史,領右將軍。其書法兼善隸、草、楷、行各體,精研體勢,心摹手追,廣采眾長,備精諸體,冶於一爐,擺脫了漢魏筆風,自成一家,影響深遠。風格平和自然,筆勢委婉含蓄,遒美健秀。李志敏評價:「王羲之的書法既表現以老莊哲學為基礎的簡淡玄遠,又表現以儒家的中庸之道為基礎的沖和。」代表作《蘭亭序》被譽為「天下第一行書」。在書法史上,他與其子王獻之合稱為「二王」。");
int num = 0;
while (flag) {
System.out.println("歡迎使用出生地介紹小程序");
System.out.println("系統中共有:");
for (int i = 0; i < ps.length; i++) {
System.out.println("" + (i + 1) + ":" + ps[i].getName());
}
System.out.println(" 請輸入序號查看介紹,輸入 # 退出程序:");
Scanner sc = new Scanner(System.in);
String key = sc.next();
switch (key) {
case "#":
flag = false;
System.out.println("感謝您的使用!");
break;
default:
num = Integer.parseInt(key) - 1;
System.out.println((num + 1) + ":" + ps[num].getName());
System.out.println(ps[num].getIntroction());
break;
}

}
}
}

3、People.java

public class People {

//姓名

private String name;
//介紹
private String introction;

public String getName() {
return name;
}

public void setName(String name) {
this.name = name;
}


public String getIntroction() {
return introction;
}

public void setIntroction(String introction) {
this.introction = introction;
}

}

⑵ javaweb如何實現請求和響應

先來看一個流程圖:


伺服器處理請求的流程:

(1)伺服器每次收到請求時,都會為這個請求開辟一個新的線程。

(2)伺服器會把客戶端的請求數據封裝到request對象中,request就是請求數據的載體!

(3)伺服器還會創建response對象,這個對象與客戶端連接在一起,它可以用來向客戶端發送響應。

由流程圖可以看出,在JavaWeb的請求與響應中,最重要的兩個參數為request以及response,這兩參數在Servlet的service( )方法中。

1、response概念:

response是Servlet.service方法的一個參數,類型為javax.servlet.http.HttpServletResponse。在客戶端發出每個請求時,伺服器都會創建一個response對象,並傳入給Servlet.service()方法。response對象是用來對客戶端進行響應的,這說明在service()方法中使用response對象可以完成對客戶端的響應工作。

response對象的功能分為以下四種:

(1)設置響應頭信息

(2)發送狀態碼

(3)設置響應正文

(4)重定向

2、response響應正文

response是響應對象,向客戶端輸出響應正文(響應體)可以使用response的響應流,repsonse一共提供了兩個響應流對象:

(1)PrintWriter out = response.getWriter():獲取字元流;

(2)ServletOutputStream out = response.getOutputStream():獲取位元組流;

當然,如果響應正文內容為字元,那麼使用response.getWriter(),如果響應內容是位元組,例如下載時,那麼可以使用response.getOutputStream()。

注意,在一個請求中,不能同時使用這兩個流!也就是說,要麼你使用repsonse.getWriter(),要麼使用response.getOutputStream(),但不能同時使用這兩個流。不然會拋出illegalStateException異常。

⑶ java如何調用對方http介面

你是指發送http請求嗎,可以使用Apache 的 HttpClient

//構建HttpClient實例
CloseableHttpClienthttpclient=HttpClients.createDefault();//設置請求超時時間
RequestConfigrequestConfig=RequestConfig.custom().setSocketTimeout(60000).setConnectTimeout(60000).setConnectionRequestTimeout(60000).build();//指定POST請求
HttpPosthttppost=newHttpPost(url);
httppost.setConfig(requestConfig);//包裝請求體
List<NameValuePair>params=newArrayList<NameValuePair>();params.addAll(content);
HttpEntityrequest=newUrlEncodedFormEntity(params,"UTF-8");//發送請求
httppost.setEntity(request);
=httpclient.execute(httppost);//讀取響應
HttpEntityentity=httpResponse.getEntity();Stringresult=null;if(entity!=null){
result=EntityUtils.toString(entity,"UTF-8");
}

⑷ Java sendPost請求方法如何加入參數

/**
* 向指定 URL 發送POST方法的請求
*
* @param url
* 發送請求的 URL
* @param param
* 請求參數,請求參數應該是 name1=value1&name2=value2 的形式。
* @return 所代表遠程資源的響應結果
*/
public static String sendPost(String url, String param) {
PrintWriter out = null;
BufferedReader in = null;
String result = "";
try {
URL realUrl = new URL(url);
// 打開和URL之間的連接
URLConnection conn = realUrl.openConnection();
// 設置通用的請求屬性
conn.setRequestProperty("accept", "*/*");
conn.setRequestProperty("connection", "Keep-Alive");
conn.setRequestProperty("user-agent",
"Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1;SV1)");
// 發送POST請求必須設置如下兩行
conn.setDoOutput(true);
conn.setDoInput(true);
// 獲取URLConnection對象對應的輸出流
out = new PrintWriter(conn.getOutputStream());
// 發送請求參數
out.print(param);
// flush輸出流的緩沖
out.flush();
// 定義BufferedReader輸入流來讀取URL的響應
in = new BufferedReader(
new InputStreamReader(conn.getInputStream()));
String line;
while ((line = in.readLine()) != null) {
result += line;
}
} catch (Exception e) {
System.out.println("發送 POST 請求出現異常!"+e);
e.printStackTrace();
}
//使用finally塊來關閉輸出流、輸入流
finally{
try{
if(out!=null){
out.close();
}
if(in!=null){
in.close();
}
}
catch(IOException ex){
ex.printStackTrace();
}
}
return result;
}

⑸ java 怎麼接收http請求

你需要搭建一個伺服器,才能接受http請求。

⑹ java http請求直接請求地址的代碼怎麼寫

public static String do_get(String url) throws ClientProtocolException, IOException {

String body = "{}";

DefaultHttpClient httpclient = new DefaultHttpClient();

try {

HttpGet httpget = new HttpGet(url);

HttpResponse response = httpclient.execute(httpget);

HttpEntity entity = response.getEntity();

body = EntityUtils.toString(entity);

} finally {

httpclient.getConnectionManager().shutdown();

}

return body;

}


⑺ java 接受http請求

使用servlet


public class Test extends HttpServlet {

private static final long serialVersionUID = 1L;

/**

* @see HttpServlet#HttpServlet()

*/

public Test() {

super();

// TODO Auto-generated constructor stub

}


/**

* @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)

*/

protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {//接收get請求

// 這里寫你接收request請求後要處理的操作

}


/**

* @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response)

*/

protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {//接收post請求

// 這里寫你接收request請求後要處理的操作

}


}


⑻ java HTTP請求 處理

javax.servlet.http.HttpResponse類用於產生返回頁面.通過HttpResponse定義的方法getOutputStream()可以獲得ServletOutputStream的實例,這樣用戶就可以利用ServletOutputStream.write方法向輸出流中寫入返回頁面的內容. 但是ServletOutputStream使用的是預設的編碼方式,如果要使返回頁面中的中文字 符能夠正常顯示,最好顯示地指定所用的字元編碼方式. 通常需要構造一個 OutputStreamWriter , 常式如下:

public void doGet (HttpServletRequest req, HttpServletResponse res)

throws ServletException, IOException

{

res.setContentType("text/html");

ServletOutputStream out = res.getOutputStream();

OutputStreamWriter ow = new OutputStreamWriter(out,"GB2312");

ow.write("這是測試");

ow.flush();

ow.close();

}

⑼ Java實現攔截HTTP請求的幾種方式

在Java的服務端開發當中,攔截器是很常見的業務場景,這里對Java開發當中幾種常見的攔截器的實現方式進行記錄和分析。案例說明基於Spring Boot環境。
一:實現javax.servlet.Filter介面(使用過濾器方式攔截請求)
import org.springframework.stereotype.Component;import javax.servlet.*;import java.io.IOException;import java.util.Date;@Componentpublic class TimeInterceptor implements Filter {@Overridepublic void init(FilterConfig filterConfig) throws ServletException {System.out.println("time filter init");}@Overridepublic void doFilter(ServletRequest servletRequest, ServletResponse servletResponse, FilterChain filterChain) throws IOException, ServletException {System.out.println("time filter start");long start = new Date().getTime();filterChain.doFilter(servletRequest, servletResponse);System.out.println("time filter 耗時:"+(new Date().getTime()-start));System.out.println("time filter finish");}@Overridepublic void destroy() {System.out.println("time filter destroy");}}

如使用@Compent註解聲明不需要加入其它配置即可使得攔截器生效,但是默認攔截/*,會攔截所有請求。
二:使用@Bean注入自定義攔截器,依然上面的代碼,去掉@Compent註解,創建TimeWebConfig配置類:
import org.springframework.boot.web.servlet.FilterRegistrationBean;import org.springframework.context.annotation.Bean;import org.springframework.context.annotation.Configuration;import java.util.ArrayList;import java.util.List;@Configurationpublic class TimeWebConfig {@Beanpublic FilterRegistrationBean timeFilter(){FilterRegistrationBean registrationBean = new FilterRegistrationBean();TimeInterceptor interceptor = new TimeInterceptor();registrationBean.setFilter(interceptor);List<String> urls = new ArrayList<>();urls.add("/user/*");registrationBean.setUrlPatterns(urls);return registrationBean;}}

上面這兩種攔截請求的實現是基於JavaEE提供的Filter介面實現的,缺點在於,該攔截器實際上是一個過濾器,執行代碼的方法doFilter只提供了request,response等參數,當請求進入被過濾器攔截的時候,我們並不知道這個請求是由哪個控制器的哪個方法來執行的。
三:使用springMVC提供的攔截器,實現org.springframework.web.servlet.HandlerInterceptor介面:
創建自定義的攔截器:
import org.springframework.stereotype.Component;import org.springframework.web.method.HandlerMethod;import org.springframework.web.servlet.HandlerInterceptor;import org.springframework.web.servlet.ModelAndView;import javax.servlet.http.HttpServletRequest;import javax.servlet.http.HttpServletResponse;import java.util.Date;@Componentpublic class MyInterceptor implements HandlerInterceptor {@Overridepublic boolean preHandle(HttpServletRequest httpServletRequest, HttpServletResponse httpServletResponse, Object handler) throws Exception {System.out.println("preHandler");System.out.println(((HandlerMethod) handler).getBean().getClass().getName());System.out.println(((HandlerMethod) handler).getMethod().getName());httpServletRequest.setAttribute("start", new Date().getTime());return true;}@Overridepublic void postHandle(HttpServletRequest httpServletRequest, HttpServletResponse httpServletResponse, Object o, ModelAndView modelAndView) throws Exception {System.out.println("postHandler");Long start = (Long) httpServletRequest.getAttribute("start");System.out.println("time interceptor 耗時:"+(new Date().getTime()-start));}@Overridepublic void afterCompletion(HttpServletRequest httpServletRequest, HttpServletResponse httpServletResponse, Object o, Exception e) throws Exception {System.out.println("afterCompletion");Long start = (Long) httpServletRequest.getAttribute("start");System.out.println("time interceptor 耗時:"+(new Date().getTime()-start));System.out.println("ex is:"+e);}}

創建配置類:
import org.springframework.beans.factory.annotation.Autowired;import org.springframework.context.annotation.Configuration;import org.springframework.web.servlet.config.annotation.InterceptorRegistry;import org.springframework.web.servlet.config.annotation.WebMvcConfigurerAdapter;@Configurationpublic class WebConfig extends WebMvcConfigurerAdapter {@Autowiredprivate MyInterceptor interceptor;@Overridepublic void addInterceptors(InterceptorRegistry registry) {registry.addInterceptor(interceptor).addPathPatterns("/user/*").excludePathPatterns("/blog/*");}}

此種方式的攔截器當中我們能夠獲取攔截的請求對應的類和方法的相關信息,缺點在於該handler對象無法獲取具體執行方法的參數信息。
四:利用Spring的切面(AOP)實現攔截器:
引入jar包:
<!-- https://mvnrepository.com/artifact/org.springframework.boot/spring-boot-starter-aop --><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-aop</artifactId></dependency>

創建切片類:
import org.aspectj.lang.ProceedingJoinPoint;import org.aspectj.lang.annotation.Around;import org.aspectj.lang.annotation.Aspect;import org.springframework.stereotype.Component;import java.util.Date;@Aspect@Componentpublic class TimeAspect {@Around("execution(* com.qinker.controller.UserController.*(..))")public Object handlerControllerMethod(ProceedingJoinPoint point) throws Throwable {System.out.println("time aspect start");long start = new Date().getTime();Object[] args = point.getArgs();for (Object obj : args) {System.out.println("arg is:"+obj);}Object obj = point.proceed();//具體方法的返回值System.out.println("aspect 耗時:"+(new Date().getTime()-start));System.out.println("time aspect end");return obj;}}
aspectj基於AOP實現的攔截器功能十分強大,具體詳解請參考spring官網網站的文檔。

⑽ java怎麼主動發送http請求

實現思路就是先定義請求頭內容,之後進行請求頭設置。

閱讀全文

與java請求相關的資料

熱點內容
電腦c盤記錄存在哪個文件夾 瀏覽:153
演算法分析與設計替換方法 瀏覽:848
老程序員丟失手機 瀏覽:270
新世紀日本語pdf 瀏覽:85
基於單片機的數字示波器 瀏覽:36
登qq伺服器連接中什麼意思 瀏覽:436
表格宏命令 瀏覽:994
肯德基app設定在哪裡 瀏覽:472
蘋果電腦文件夾怎麼添加列印機 瀏覽:701
pythonswagger 瀏覽:235
作業打卡解壓素材 瀏覽:159
pdf導入ibooks 瀏覽:577
xps文件轉pdf 瀏覽:134
怎麼樣獲得命令方塊 瀏覽:899
安卓studio如何改主題 瀏覽:933
linux自動獲取ip命令行 瀏覽:208
做設計做程序員適合的電腦 瀏覽:778
網站有源碼和沒有源碼的區別 瀏覽:680
如何自學開發app 瀏覽:595
修電梯pdf 瀏覽:351