如何将参数从jsp传递到java类?
我正在使用Tomcat8 WebSocket构建聊天室,代码来自tomcat的示例。但我不知道如何将变量传递到java类中,下面是我的代码:如何将参数从jsp传递到java类?,java,jsp,Java,Jsp,我正在使用Tomcat8 WebSocket构建聊天室,代码来自tomcat的示例。但我不知道如何将变量传递到java类中,下面是我的代码: <jsp:useBean id="chatannotation" scope="application" class="websocket.chat.ChatAnnotation" /> <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://w
<jsp:useBean id="chatannotation" scope="application"
class="websocket.chat.ChatAnnotation" />
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Insert title here</title>
</head>
<body>
<%
String name = (String) session.getAttribute("realname");
%>
<a href="chat.jsp">Game</a>
</body>
</html>
在此处插入标题
我想将变量名放入以下java类中,在分配给player的构造函数ChatAnnotation()中:
public class ChatAnnotation {
private static final Log log = LogFactory.getLog(ChatAnnotation.class);
private static final Set<ChatAnnotation> connections =
new CopyOnWriteArraySet<>();
private final String player;
private String username;
private Session session;
public ChatAnnotation() {
player = "";
}
}
公共类注释{
私有静态最终日志Log=LogFactory.getLog(chatnotation.class);
专用静态最终集连接=
新建CopyOnWriteArraySet();
私人最终弦乐演奏者;
私有字符串用户名;
非公开会议;
公共聊天室注释(){
player=“”;
}
}
首先,如果要调用ChatAnnotation的构造函数并更改播放器名称,则必须创建参数化构造函数
public ChatAnnotation(String player) {
this.player = player;
}
<%
String name = (String) session.getAttribute("realname");
ChatAnnotation chat = new ChatAnnotation(name);
%>
现在要调用它,您必须在JSP页面中创建对象,并将值传递给构造函数
public ChatAnnotation(String player) {
this.player = player;
}
<%
String name = (String) session.getAttribute("realname");
ChatAnnotation chat = new ChatAnnotation(name);
%>
首先在ChatAnnotation类中创建一个构造函数+public getPlayer()方法,如
ChatAnnotation(String name){
player = name;
}
public String getPlayer(){
return player;
}
您的.jsp页面也会这样做,
<%
String name = (String) session.getAttribute("realname");
ChatAnnotation chatAnnotation = new ChatAnnotation(name);
session.setAttribute("chatAnno",chatAnnotation);
%>
<%
ChatAnnotation chatAnno = (ChatAnnotation)session.getAttribute("chatAnno");
String playerName = chatAnno.getPlayer();
%>
在您想要使用它的另一端(otherFile.jsp),将它从会话中拉回来,就像您放置它一样,
<%
String name = (String) session.getAttribute("realname");
ChatAnnotation chatAnnotation = new ChatAnnotation(name);
session.setAttribute("chatAnno",chatAnnotation);
%>
<%
ChatAnnotation chatAnno = (ChatAnnotation)session.getAttribute("chatAnno");
String playerName = chatAnno.getPlayer();
%>
在文件中写入jsp:
<jsp:useBean id="chatannotation" scope="application"
class="websocket.chat.ChatAnnotation" />
<%
String name = (String) session.getAttribute("realname");
//-------now pass parameter "name" to your ChatAnnotation java file
ChatAnnotation chatAnnotation = new ChatAnnotation(name);
session.setAttribute("name",chatAnnotation);
%>
你能做些什么?从JSP创建对象并将其放入会话,然后重新使用到您希望利用的另一个部分。。。明白我的意思了吗?我建议您使用
JSTL
将代码导入JSP
谢谢!我明白你的意思。但如果我使用带参数的构造函数,我将出现以下错误:usebean类属性无效。我怎样才能解决这个问题?