我的web.xml文件代码
<welcome-file-list>
<welcome-file>/index.jsp</welcome-file>
</welcome-file-list>
<listener>
<listener-class>com.vts.action.Server</listener-class>
</listener>
Server.java代码....
public class Server extends HttpServlet implements ServletContextListener {
private static final long serialVersionUID = 1L;
Socket clientsocket;
ServerSocket socket = null;
int PORT = 9090;
@Override
public void contextDestroyed(ServletContextEvent arg0) {
// TODO Auto-generated method stub
System.out.println("ServletContextListener destroyed");
}
@Override
public void contextInitialized(ServletContextEvent arg0)
{
// hear code create socket server and accept multiple client connection and
String via gps and save string in database is working correctly
}
}
BUT 现在我的问题是我想接受通过gps在后台运行的继续字符串
但是index.jsp页面没有启动,认为这是我的欢迎文件。我不确定我的web.xml中的监听器配置是对还是错......请给出建议
谢谢&amp;此致
克里希纳肯特
答案 0 :(得分:0)
感谢回复,最后我得到了解决方案...... 我使用TCP连接在服务器端使用线程,并使用contextListner方法创建两个java类MyListerner.java
@Override
public void contextDestroyed(ServletContextEvent arg0) {
System.out.println("ServletContextListener destroyed");
}
@Override
public void contextInitialized(ServletContextEvent arg0) {
ExecutorService executorService = Executors.newSingleThreadExecutor();
executorService.submit(new RunClassOnDeployment(arg0.getServletContext()));
}
在contextInitialized中调用server.java(带有线程的TCP连接)
vtsDataDao vtsData ;
ServletContext myServletContext; // in case you need the servelet context
public server(ServletContext sc) {
myServletContext = sc;
}
@Override
public void run() {
ServerSocket serverSocket = null;
try {
// Create the server socket.
serverSocket = new ServerSocket(9090);
} catch (IOException ioe) {
System.out.println("Could not create server socket at 9090. Quitting.");
}
System.out.println("Listening for clients on 9090...");
while (true) {
try {
Socket clientSocket = serverSocket.accept();
try{
DataInputStream is = new DataInputStream(new BufferedInputStream(clientSocket.getInputStream()));
while (true)
{
byte[] byteData = receiveData(is);
String frameData = new String(byteData).trim();
System.out.println("Incoming String's:-"+frameData);
new vtsDataDao().sendInputFrame(frameData);
}//end while
}catch(Exception e){
}//end ctry catch
} catch (IOException ioe) {
System.out
.println("Exception encountered on accept. Ignoring. Stack Trace :");
ioe.printStackTrace();
}
}
}
**注意: - 在上面的类我使用两个方法1. receiveData(DataInputStream is)用于读取i / p数据并返回VTS Data String和sendInputFrame(frameData);
WEB.XML
<listener>
<listener-class>com.vts.action.MyListener</listener-class>
</listener>