「java如何实现交互功能」java前后端交互方式
今天给各位分享java如何实现交互功能的知识,其中也会对java前后端交互方式进行解释,如果能碰巧解决你现在面临的问题,别忘了关注本站,现在开始吧!
本文目录一览:
- 1、java web 开发中的前后台交互方法
- 2、java socket如何实现客户端与客户端的交互?
- 3、JAVA写一个和前端交互的小功能怎么写
- 4、java如何与shell实现交互?
- 5、怎么让java两个类之间进行交互
- 6、用java怎么实现与浏览器的数据交互:
java web 开发中的前后台交互方法
给你举一个登录的例子。
首先用户请求 login.jsp 登录页面,之后输入用户名密码,表单提交到 servlet ,在 servlet 中可以处理业务逻辑,当然也可以调用如 hibernate 框架操作数据库。 之后根据业务处理的结果,重定向或者转发到某一个页面。完成一次交互(不建议在jsp中直接调用业务逻辑)。
struts 好比是对 servlet 的封装,可以通过属性文件的配置,核心类 ActionServlet 根据用户请求的路径到达具体的 action 。提高系统的开发效率,方便代码的维护。
ajax 的核心对象是 XMLHttpRequest ,通过这个对象,允许用户可以在页面中直接调用后台业务逻辑,而不需要表单提交,或者刷新界面。 ajax 的框架如 yahoo 的云,jquery,dhtmlxAjax,dwr等等。 dwr 是基于后台的技术,其他的是前台 ajax 框架。
主流的框架还有 hibernate 、spring、ejb 等等。
java socket如何实现客户端与客户端的交互?
1、服务端监听一个端口,其它客户端都通过这个端口和服务端进行通信。
2、每个客户端连接上来,服务端给其一个标识ID。然后向其它所有客户端广播一下有新客户端接入,ID多少。
3、客户端要向客户端发送消息,可以以消息包的形式发送,就是把目的客户端的标识和发送的内容组成一个数据包发往服务器,服务器读取就知道要向哪 个客户端发送数据,然后把内容往目的客户端通道发送
JAVA写一个和前端交互的小功能怎么写
java和前端的交互分两种:
ajax请求
页面嵌套的标签
常用第一种,我们一般用jquery $.ajax()这个方法来实现交互
java如何与shell实现交互?
交互式模式就是shell等待你的输入,并且执行你提交的命令。
这种模式被称作交互式是因为shell与用户进行交互。这种模式也是大多数用户非常熟悉的:登录、执行一些命令、签退。当你签退后,shell也终止了。
shell也可以运行在另外一种模式:非交互式模式。在这种模式下,shell不与你进行交互,而是读取存放在文件中的命令,并且执行它们。当它读到文件的结尾,shell也就终止了。
怎么让java两个类之间进行交互
HI我..
通过构造方法就可以把那个引用传过去了。。
如果你是在一个窗口干什么后打开另一个窗口的。。就是说你在一个窗口中打开另一个窗口的。。
TextFrame 类 这里面有个文本框和一个按钮。。点击按钮就打开另一个窗口。。
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.JTextField;
public class TextFrame extends JFrame {
public JTextField jt;
/**
* @param args
*/
public TextFrame() {
JLabel jl = new JLabel("文本框:");
this.jt = new JTextField(15);
JButton jb = new JButton("点击");
jb.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent arg0) {
new ButtonFrame(TextFrame.this);
}
});
JPanel jp = new JPanel();
jp.add(jl);
jp.add(jt);
jp.add(jb);
this.add(jp);
this.setBounds(100, 100, 100, 100);
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
this.setVisible(true);
}
public static void main(String[] args) {
new TextFrame();
}
}
ButtonFrame 类。。这里面有个按钮。点击就可以设置这边这个文本框的内容了。。
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JOptionPane;
import javax.swing.JPanel;
public class ButtonFrame extends JFrame {
private TextFrame jf;
public ButtonFrame(TextFrame frame) {
this.jf = frame;
JButton jb = new JButton("点击设置");
jb.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent arg0) {
String str = JOptionPane.showInputDialog("请输入", null);
ButtonFrame.this.jf.jt.setText(str);
}
});
JPanel jp = new JPanel();
jp.add(jb);
this.add(jp);
this.setBounds(250, 250, 100, 100);
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
this.setVisible(true);
}
}
如果两个类都是单独运行的。。没有任何关系的话(即不是在一个窗口中点击上面东西或是干什么就打开另一个窗口)。。都是独立运行的。。
那就需要用到socket了哦。。
下面两个类你都单独运行就是了哈。。
服务器端:SocketManager类。这里面有个文本框。。
import java.io.DataInputStream;
import java.io.DataOutputStream;
import java.io.IOException;
import java.net.ServerSocket;
import java.net.Socket;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.JTextField;
public class SocketManager extends JFrame {
/**
* @param args
* @throws IOException
*/
private JTextField jt;
public static void main(String[] args) {
SocketManager manager = new SocketManager();
manager.doListen();
}
public SocketManager() {
JLabel jl = new JLabel("文本框:");
this.jt = new JTextField(15);
JPanel jp = new JPanel();
jp.add(jl);
jp.add(jt);
this.add(jp);
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
this.setVisible(true);
}
public void doListen() {
ServerSocket server;
try {
server = new ServerSocket(9991);
while (true) {
Socket client = server.accept();
new Thread(new SSocket(client)).start();
}
} catch (IOException e) {
e.printStackTrace();
}
}
// 服务器进程
class SSocket implements Runnable {
Socket client;
public SSocket(Socket client) {
this.client = client;
}
public void run() {
DataInputStream input;
while (true) {
try {
input = new DataInputStream(client.getInputStream());
try {
String listMsg = input.readUTF();
SocketManager.this.jt.setText(listMsg);
} catch(Exception e) {
break;
}
} catch (IOException e) {
e.printStackTrace();
}
}
}
}
}
客户端:Client类 有个按钮。。点击弹出输入框输入内容。。服务器的文本框就显示你输入的内容
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.io.DataOutputStream;
import java.io.IOException;
import java.io.OutputStream;
import java.net.Socket;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JOptionPane;
import javax.swing.JPanel;
public class Client extends JFrame {
private static Socket socket;
OutputStream netOut;
DataOutputStream doc;
public Client() {
try {
socket = new Socket("127.0.0.1", 9991);
this.netOut = socket.getOutputStream();
this.doc = new DataOutputStream(netOut);
} catch(Exception e) {
e.printStackTrace();
}
JButton jb = new JButton("点击设置");
jb.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent arg0) {
String str = JOptionPane.showInputDialog("请输入", null);
try {
doc.writeUTF(str);
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
});
JPanel jp = new JPanel();
jp.add(jb);
this.add(jp);
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
this.setVisible(true);
}
public static void main(String[] args) {
new Client();
}
}
用java怎么实现与浏览器的数据交互:
看看java.net.HttpURLConnection这个类的用法,能够达到你的要求:
下面是一个例子:
1. package com.sw.study.urlConnection;
2.
3. import java.io.BufferedReader;
4. import java.io.InputStreamReader;
5. import java.io.OutputStream;
6. import java.net.HttpURLConnection;
7. import java.net.URL;
8. import java.net.URLConnection;
9. import java.util.HashMap;
10. import java.util.Map;
11.
12. public class URLConnectionUtil {
13.
14. private static final String SERVLET_POST = "POST" ;
15. private static final String SERVLET_GET = "GET" ;
16. private static final String SERVLET_DELETE = "DELETE" ;
17. private static final String SERVLET_PUT = "PUT" ;
18.
19. private static String prepareParam(MapString,Object paramMap){
20. StringBuffer sb = new StringBuffer();
21. if(paramMap.isEmpty()){
22. return "" ;
23. }else{
24. for(String key: paramMap.keySet()){
25. String value = (String)paramMap.get(key);
26. if(sb.length()1){
27. sb.append(key).append("=").append(value);
28. }else{
29. sb.append("").append(key).append("=").append(value);
30. }
31. }
32. return sb.toString();
33. }
34. }
35.
36. public static void doPost(String urlStr,MapString,Object paramMap ) throws Exception{
37. URL url = new URL(urlStr);
38. HttpURLConnection conn = (HttpURLConnection)url.openConnection();
39. conn.setRequestMethod(SERVLET_POST);
40. String paramStr = prepareParam(paramMap);
41. conn.setDoInput(true);
42. conn.setDoOutput(true);
43. OutputStream os = conn.getOutputStream();
44. os.write(paramStr.toString().getBytes("utf-8"));
45. os.close();
46.
47. BufferedReader br = new BufferedReader(new InputStreamReader(conn.getInputStream()));
48. String line ;
49. String result ="";
50. while( (line =br.readLine()) != null ){
51. result += "\n"+line;
52. }
53. System.out.println(result);
54. br.close();
55.
56. }
57.
58. public static void doGet(String urlStr,MapString,Object paramMap ) throws Exception{
59. String paramStr = prepareParam(paramMap);
60. if(paramStr == null || paramStr.trim().length()1){
61.
62. }else{
63. urlStr +="?"+paramStr;
64. }
65. System.out.println(urlStr);
66. URL url = new URL(urlStr);
67. HttpURLConnection conn = (HttpURLConnection)url.openConnection();
68. conn.setRequestMethod(SERVLET_PUT);
69. conn.setRequestProperty("Content-Type","text/html; charset=UTF-8");
70.
71. conn.connect();
72. BufferedReader br = new BufferedReader(new InputStreamReader(conn.getInputStream()));
73. String line ;
74. String result ="";
75. while( (line =br.readLine()) != null ){
76. result += "\n"+line;
77. }
78. System.out.println(result);
79. br.close();
80. }
81.
82. public static void doPut(String urlStr,MapString,Object paramMap) throws Exception{
83. URL url = new URL(urlStr);
84. HttpURLConnection conn = (HttpURLConnection)url.openConnection();
85. conn.setRequestMethod(SERVLET_PUT);
86. String paramStr = prepareParam(paramMap);
87. conn.setDoInput(true);
88. conn.setDoOutput(true);
89. OutputStream os = conn.getOutputStream();
90. os.write(paramStr.toString().getBytes("utf-8"));
91. os.close();
92.
93. BufferedReader br = new BufferedReader(new InputStreamReader(conn.getInputStream()));
94. String line ;
95. String result ="";
96. while( (line =br.readLine()) != null ){
97. result += "\n"+line;
98. }
99. System.out.println(result);
100. br.close();
101.
102. }
103.
104. public static void doDelete(String urlStr,MapString,Object paramMap) throws Exception{
105. String paramStr = prepareParam(paramMap);
106. if(paramStr == null || paramStr.trim().length()1){
107.
108. }else{
109. urlStr +="?"+paramStr;
110. }
111. System.out.println(urlStr);
112. URL url = new URL(urlStr);
113. HttpURLConnection conn = (HttpURLConnection)url.openConnection();
114. conn.setDoOutput(true);
115. conn.setRequestMethod(SERVLET_DELETE);
116. //屏蔽掉的代码是错误的,java.net.ProtocolException: HTTP method DELETE doesn't support output
117. /* OutputStream os = conn.getOutputStream();
118. os.write(paramStr.toString().getBytes("utf-8"));
119. os.close(); */
120.
121. if(conn.getResponseCode() ==200){
122. System.out.println("成功");
123. }else{
124. System.out.println(conn.getResponseCode());
125. }
126. }
127.
128. public static void main(String[] args) throws Exception{
129. String urlStr = "";
130. MapString,Object map = new HashMapString,Object();
131. map.put("username","张三");
132. map.put("password","88888");
133. // URLConnectionUtil.doGet(urlStr, map);
134. // URLConnectionUtil.doPost(urlStr, map);
135. // URLConnectionUtil.doPut(urlStr, map);
136. URLConnectionUtil.doDelete(urlStr, map);
137.
138. }
139.
140.
141. }
关于java如何实现交互功能和java前后端交互方式的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站。
发布于:2022-12-23,除非注明,否则均为
原创文章,转载请注明出处。